动态规划
setidfine
这个作者很懒,什么都没留下…
展开
-
POJ_2479 最大连续子序列和
题目的意思很简单,看图就能懂:把一数组分为两部分,使得两部分的连续子序列和的和最大(有点绕口啊)对于最大连续子序列和,A[i]...A[j],肯定不会存在某一k值( iint currentMax = 0;int maxfor(int i=1; icurrentMax ? max:currentMax; if(currentMax如此只需要遍历一次数组即可得到最大的连续子序列和,复杂度为 O(N)而对于本题,则还需要一步,即如何分割数组使得两部分的最大连续子序列和的和最大:1、设end[i]表示原创 2011-03-18 13:27:00 · 1178 阅读 · 3 评论 -
POJ_1221“单调递增”回文-----动态规划
直奔主题:设f(n,m)表示 n 经分解后最大子项不超过 m 的非递减序列的种数,则有: f(n,m) = f(n-m,m) + f(n,m-1)两种情况: 1、至少存在一个最大子项为 m,然后分解 n-m 2、最大子项为 m-1那么 ans(N) = f((N-k)/2, k) k=N,N-2,N-4...0(k表示中心的那个数,且为中轴线)如果 N 为偶数,则要加上一种情况:中轴线不过任何数字 ans[N] += f(N/2, N/2); #include usi原创 2011-03-19 23:12:00 · 485 阅读 · 0 评论