随笔分类 -  DP_一般dp

摘要:题意:给定一串数,求最多可留下多少个呈波浪状排列的数 对于30%:最最朴素的暴力 对于70%:考虑O(n²) dp 设f[i][1]为以第i个数为结尾的序列,满足条件A的最优解;f[i][2]为以第i个数为结尾的序列,满足条件B的最优解 题目给出的两个条件,其实为状态转移提供了思路 不难得出方程 f 阅读全文
posted @ 2017-08-13 08:42 Vincent_hwh 阅读(229) 评论(0) 推荐(0)
摘要:现在也就只能写这种水题了。。 题目链接 容易想到对于每个位置,有两种来源: 从同一棵树的上方1米跳下来/从其他树上方del米跳下来 用f[i][j]表示高度为i,第i棵树的最优解 f[i][j]=num[i][j]+max(f[i+1][j],f[i+del][k]) O(n^2*h) 考虑空间换时 阅读全文
posted @ 2017-04-18 12:12 Vincent_hwh 阅读(220) 评论(0) 推荐(0)
摘要:题目 将N分为若干个不同整数的和,问有多少种不同的划分方式,例如:n = 6,{6} {1,5} {2,4} {1,2,3},共4种。由于数据较大,输出Mod 10^9 + 7的结果即可。 很容易想到01背包,由于要求每个整数都不同,故每个整数就可以看作物品 f[i][j]表示在1~i的整数中选择若 阅读全文
posted @ 2017-04-17 22:04 Vincent_hwh 阅读(176) 评论(0) 推荐(0)
摘要:题目链接 题意 n分钟跑步,每分钟可以跑步或休息 疲惫值的上限为m 若跑步,第i分钟可以跑Di米,增加一单位疲惫值 若休息,恢复一单位疲惫值,但必须恢复到疲惫值为0才能继续跑步 跑步结束时疲惫值必须为0 求最远可以跑的距离 分析 dp f[i][j]表示第i分钟,疲惫值为j的最远距离 f[i][j] 阅读全文
posted @ 2016-12-06 17:03 Vincent_hwh 阅读(278) 评论(0) 推荐(0)
摘要:题目大意 给一块长为n的木板,切成四块围成一个四边形,求有几种方案 分析 1.构成四边形的条件:三边之和大于第四边,故每条边不超过n/2; 2.总的方案数,可从最后一条边考虑起,最后一条边有多少种情况,再依次加上前面得出的结果 该问题具有无后效性,故可用动规解决 转移方程 f[i][j]表示划分到第 阅读全文
posted @ 2016-12-06 16:12 Vincent_hwh 阅读(162) 评论(0) 推荐(0)
摘要:题目:http://www.lydsy.com/JudgeOnline/problem.php?id=1207 一开始被这个二维平面吓到了。。没有想到可以用 f[i]表示打到第i只鼹鼠时最多打了几只 f[i]=max(f[i],f[j]+1),其中由j可以到i,即 0<=time[i]-time[j 阅读全文
posted @ 2015-05-16 15:19 Vincent_hwh 阅读(102) 评论(0) 推荐(0)