动态规划
夕阳下的奔跑517
这个作者很懒,什么都没留下…
展开
-
[POJ]三.D:Multiplication Puzzle石子合并
题目分类:区间DP 一、AcWing 5282. 石子合并 设有N堆石子排成一排,其编号为1,2,3,…,N。 每堆石子有一定的质量,可以用一个整数来描述,现在要将这N堆石子合并成为一堆。 状态表示: s[i]=a[1]+a[2]+…+a[i] dp[i][j]=合并区间[i,j]的石子,min cost 状态计算: dp[i][j]=min (dp[i][k]+dp[k+1][j]+a[i]+a[i+1]+…+a[j]) =min (dp[i][k]+dp[k+1][j]+s[j]-s[i.原创 2020-11-25 22:14:11 · 225 阅读 · 0 评论 -
[POJ]四.A.Maximum sum连续子数组的最大和
动态规划 一、AcWing 55. 连续子数组的最大和 输入一个 非空 整型数组,数组里的数可能为正,也可能为负。数组中一个或连续的多个整数组成一个子数组。求所有子数组的和的最大值。 思路:动态规划。 状态表示: 令dp[i]=以a[i]为结尾的子数组,最大和(也就是说a[i]在dp[i]中是一定选的)。 状态计算: ①若dp[i-1]>0,dp[i]=dp[i-1]+a[i]。 ②若dp[i-1]<=0,dp[i]=a[i]。 即 dp[i]=max( dp[i-1]+a[.原创 2020-11-24 13:32:33 · 144 阅读 · 0 评论