
DP
文章平均质量分 64
EzCUfST
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
hdu 1003 Max Sum
简单DP 最大连续子序列和原创 2014-11-12 22:08:44 · 388 阅读 · 0 评论 -
hdu 1024 Max Sum Plus Plus(最大m子段和)
这道题很容易看出来是动态规划 我们用f[i][j]表示前j个数,分成i段,并且使用第j个数所能达到的最大值,那么我们可以得到状态转移: ①f[i][j]=f[i][j-1]+a[j],前j-1个数分成i段,由于第j-1个数在这i段里,所以我们可以把第j个数放到第i段 ②f[i][j]=max(f[i-1][k]])+a[j],其中i-1 综上所述,我们可以得到这道题的状态转原创 2015-07-21 21:25:01 · 640 阅读 · 0 评论 -
CodeForces 407B DP
看到题意要模100000007时就知道这个题要么有规律,要么用DP做,注意到1 我们用f[i]表示第一次走到该点时所用的步数,由于1 一个值得注意的地方是:由于DP方程中有减法操作,所以最后得到的结果可能是负数,此时,我们要将它加上若干个1000000007使其变成正数。 #include #include using namespace std; #define M原创 2015-08-02 20:49:33 · 689 阅读 · 0 评论 -
hdu 1025 二分法求LIS
题目给出两个序列,两个序列间有边相连,我们要选出不交叉的边,使得所选的边最多 我们发现,如果我们对其中一个序列从小到大排序的话,这个问题就变成了求另一个序列的最长上升子序列的问题。 由于这个题目的数据比较大,一般的求最长上升子序列的方法是n方的,显然不能满足题目的要求,我们建立一个数组g,g[i]表示长度为i的上升子序列最后一个数的最小值,那么显然g数组是严格单调的,确切的原创 2015-07-24 19:54:31 · 559 阅读 · 0 评论