……斜率优化吗
摘要:
转自http://blog.sina.com.cn/s/blog_508dd1e60100tvk0.html看了这个我就懂了!(不过要用到实际上应该还是不行)【题目大意】有N个数,现要将它们分成连续的若干段,每段的代价为(∑Ci)^2+M,求最小的代价。【题目分析】容易得到这样的一个动态规划算法:令dp[i]表示前i个数分成若干段的最小代价,能得到一个经典的动态转移方程:dp[i]= Min (dp[j] + Cost(j+1,i))+M,0<=j<i。其中Cost(a,b)表示把a..b这些数分成一段的费用。这个算法的时间复杂度是O(N^2)。 这题N有500000,必须优化。我 阅读全文