动态规划
‘’云腾致雨‘’
这个作者很懒,什么都没留下…
展开
-
HDU 1231 最大连续子序列(dp)
题目链接:最大连续子序列 思路分析: 最暴力的自然是三层循环了,自然是TLE,我用的sum[i]来储存前i项的和(感觉有点前缀和的思想),时间复杂度到了O(n^2),还是超时了。我想过既然是一维数组,应该遍历一遍就行的,可是依然没有想到解决的方法,直到看题解,我又怀疑我的智商了,这么简单就是想不到。我们用sum[i]来储存以a[i]为末尾的子序列的最大和,有sum[i]=max(sum[i-1]+...原创 2019-01-26 22:30:33 · 94 阅读 · 0 评论 -
POJ-2184 (01背包的负数处理)
i TS[i] TF[i] 1 -5 7 2 8 -6 3 -2 3 如图所示,要求TS[i]和TF[i]的和最大,但是TS[i]的和不能为负数,TF[i]的和也不能为负数。输出最终的最大的和。 我们可以把他看成01背包的问题。我们可以假设TS[i]是正数,(其实也不用假设,即便为负数,我们也只是需要移动区间而已,从而使得TS[i]为正)。也就是求在花费TS[i]的基础...原创 2019-02-21 15:47:18 · 1400 阅读 · 0 评论 -
POJ 3254,POJ 1185(状态压缩DP)
题目链接: POJ-3254 Corn Fields 思路: 我们可以用二进制枚举第一行状态,用1代表在这种植,0代表不种植,第一行确定了,第二行就可以根据第一行不断累加。dp[row][state]代表第row行用state状态时的方法数。如果这个state合法,则dp[row][state]=dp[row-1][state1]+dp[row-1][state2]+… #include &lt...原创 2019-02-20 20:56:01 · 117 阅读 · 0 评论