Max Sum Plus Plus HDOJ-1024 动态转移方程:dp[i][j]=max(dp[i][j-1]+a[j],max(dp[i-1][k])+a[j]) (0<k<j) 其中dp[i][j]表示前i个数分为j个子段的最大值 转移有两个方向:一个是分为i个子段,第j个属于第i个子段.另一个转移方向就是第j个单独形成一个子段,前k(0-j)个组成i-1个子段. 由于本题n太大,而m也没有给出,所以按照上面的想法需要有三重循环,会超时.所以需要使用滚动数组. 注意第二维需要正序遍历…
Max Sum Plus Plus 题意:题意理解了老半天,这里是说在给定数列中,取m组子数列,不能有重复,使得这些子序列的和最大: 就比如m=2时候,1 /2/-4/5/6.可以不用拿-4的意思: 思路:这道题的思路是动态规划,递推: 状态dp[i][j] 表示有前j个数,组成i组的和的最大值. 决策: 第j个数,要么包含在第i组里面,要么自己独立成组. 其中最后一组包含a[j].(这很关键) 则状态转移方程为:(在二维图中,就是要么从左边取,要么取上一行的最大值,下式中,左边max是包含在第…