dp
文章平均质量分 75
brightest_star
这个作者很懒,什么都没留下…
展开
-
hdu4055 dp
好高端的dp。。。。。dp[i][j]表示:处理完第i位,序列末尾为j的序列共有多少个‘I’:dp[i][j] = sigma{dp[i-1][x]},其中1≤x≤j-1,可进一步简化,dp[i][j] = dp[i][j-1]+dp[i-1][j-1] ‘D’:dp[i][j] = sigma{dp[i-1][x]},其中j≤x≤i-1,可进一步简化,dp[i][j] = dp[i-1]转载 2015-08-10 15:44:41 · 228 阅读 · 0 评论 -
hdu 1024 dp
dp[i][j]取i段,最后一位为a[j]和的最大值dp[i][j]=max(dp[i][j-1]+a[j]+dp[i-1][k]+a[j]) (i-1用pre数组代替dp[i]那一维,每次加取一段的时候滚动,储存j位之前的最大值最后输出m段时前n位最大值maxx太渣理解得特别困难。。。手动模拟一下=,=#include #include #inclu原创 2015-09-09 18:35:59 · 212 阅读 · 0 评论 -
01背包 15CCPC D题
http://acm.uestc.edu.cn/#/problem/show/1218首先01背包FOR(i,1,n)FOR(j,0,V)dp[i][j] =max(dp[i-1][j],dp[i-1][j-c[i]]+w[i]);空间优化,用一维数组实现,dp[i]这个可以省略,注意第二层循环倒着来FOR(i,1,n)FOR(j,V,0)dp[j] =ma原创 2015-11-07 19:53:33 · 288 阅读 · 0 评论 -
hdu3555+cf55D 数位dp入门题
就做了3道入门题。。。的瞎总结,一般题目为计算l~r中间有多少个符合条件的数,l和r的范围极大=,=最后结果为cal(r)- cal(l-1)dp[i]表示到第几位为止,例如dp[4]表示0000~9999dp[i][j][k] j,k...表示状态位cal函数把l或r拆成一个一个的数字,然后dfs往下枚举每位上是0~9的数字,都有多少个符合的数limit 0/1 表示后原创 2016-03-05 13:07:06 · 450 阅读 · 1 评论 -
hdu5890 bitset优化0/1背包
额。。。bitset的优化呢,原来是n*m,10*87的时间复杂度在第二维的时候优化成了n*n,10 *10具体bitset怎么实现的呢。。看代码看注释#include #include#include#include#include#include#include#include#include#include#include#include#include原创 2016-09-21 16:06:40 · 335 阅读 · 0 评论