来看一个很有意思的题目.. 首先是闪过脑海的几个想法:1. 枚举消除顺序?阶乘太过暴力;2. 枚举状态是否消除?指数太过暴力;3. 贪心?不具备最优子结构;4. 枚举子结构然后在子结构中找最优解.. 可以一试。 // 终于考完了分布式数据库.. 发现每一个考试之前的夜晚,我都会脑洞大开,突破天际 ..  

对于每一个位置,假设知道了该位置左侧和右侧,两个完整数据段的最优解,那么对于当前位置(作为最后一个消除的位置)来说,整个数据段的最优解应该怎么确定呢?不容易确定,因为不清楚上述两个数据段的消除顺序。如果在状态中记录最后一次消除的点的位置,显然方便了转移和计算,那么状态是否合理呢?...思考了上述问题,设计状态dp[l][r]表示从l位置到r位置整个数据段的最优解,并且最后两次的消除分别是l和r位置,代码如下。