DP
OMRailgun
这个作者很懒,什么都没留下…
展开
-
Codeforces_607B:Zuma(区间DP)
题目大意给定长度为n的一个序列ai,每次操作可以消除一个回文串,问至少需要几次操作可以将整个序列消除.解法为区间dp,设f[i][j]表示消除第i至j项所需的最小操作次数,转移的话f[i][j]可以拆分成f[i][k]和f[k+1][j]两段,即相当于分成两段各自消除,而当a[i]==a[j]时,则f[i][j]除了前面的那种消法外,还可以看作在消除了第i+1至j-1个元素后顺带消除了外层的第原创 2017-01-05 00:13:17 · 440 阅读 · 0 评论 -
LightOJ_1265:Island_of_Survival(概率DP/想法题)
题目大意是岛上有一个人,t只老虎和d只鹿,每天都会有两个生物随机碰面,有以下几种情况①老虎与人碰面,人被吃掉②老虎与鹿碰面,鹿被吃掉③老虎与老虎,两只老虎同归于尽④鹿与鹿碰面,什么都不会发生⑤鹿与人碰面,人可以选择杀死鹿或不杀鹿(取决于你),问最后人存货下来的最大概率.经典的概率DP问题,设a[i][j]为岛上剩i只老虎和j只鹿的情况,计算每个a[i][j]时先算出第①②③种情况,随后再按照概原创 2017-01-05 13:47:06 · 940 阅读 · 0 评论 -
Codeforces_611D:New_Year_and_Ancient_Prophecy(DP+树状数组)
题意是给定一个n位数字,你现在可以将它分隔成若干个长度更短的数字,例如1234567可以拆分成1234和567两个数字,现在规定一个拆分方案合法当且仅当①拆分出的数字按顺序严格递增②拆除的每个数字是正整数③拆分出的每个数字没有前导0.现在给定n和原来的n位数字,问有多少种合法的拆分方案,答案mod 1e9+7.设原来的n位数字分别存储在a[1..n]中,设c[i][j]表示的是当前分隔到第j位原创 2017-01-14 23:25:27 · 308 阅读 · 0 评论 -
Codeforces_714E:Sonya_and_Problem_Wihtout_a_Legend(DP+想法题)
题目大意是给定n个数字和一种操作,该操作允许你将其中某个数字+1或者-1,求使n个数字变更为严格单调递增所需的最小操作数.基于离散化+DP的题解在度娘上遍地都是,故不再赘述.这里是在Codeforces上发现了一种十分新奇的做法,但是lz暂时还无法很好的解释它的原理,然后又怕忘记了,所以在这里贴上代码以防忘记,请静待后续更新0.0原创 2017-01-14 20:52:05 · 215 阅读 · 0 评论