ACM-动态规划
文章平均质量分 74
w20810
这个作者很懒,什么都没留下…
展开
-
CF 305 div2 D. Mike and Feet (递推)
题目:http://codeforces.com/contest/548/problem/D题意:给定n个数字a1,a2....an,定义一个大小为x的集合(x个相连的数字)的strength为集合里面最小的数的值。让你输出集合大小为(1~n)的集合的最大的strength。比如有10个数字,就要求出10个strength。大小为9的集合有2个(前9个数字和后9个数字),找出两个集合里面的最大原创 2015-05-28 11:58:22 · 527 阅读 · 0 评论 -
codeforces #326 D. Duff in Beach (dp)
题目:http://codeforces.com/problemset/problem/588/D题意:已知长度为n的数组a[0...n-1]和长度为l的数组b[0...l-1],并且b[i]=a[i%n],在b[0...l-1]中找有多少种特殊的序列其满足3个条件:Duff is so curious, she wants to know the number of subsequenc原创 2015-10-20 13:27:21 · 526 阅读 · 0 评论 -
codeforces #316 E. Pig and Palindromes (dp~)
题目:http://codeforces.com/contest/570/problem/E题意:求从(1,1)走到(n,m)形成回文串的方案数。分析:要形成回文串,前后对应的字符必须相同。以(1,1)和(n,m)为起点,同时往中间走,定义dp[step][x1][y1][x2][y2]表示从(1,1)走step步到达(x1,y1),从(n,m)走step步到达(x2,y2),并且两条路径原创 2015-10-25 14:33:35 · 463 阅读 · 0 评论 -
codeforces #320 Writing Code (完全背包)
题目:http://codeforces.com/contest/544/problem/C题意:有n个程序员,给出每个程序员写一行代码会出现的bug数,现在要写m行的代码,问怎么安排使得总的bug数小于m。分析:定义dp[i][j][k]为处理可前i个程序员,写了j行代码,最多出现k个错误的方案数。直接用完全背包推即可。代码:#include using namespace s原创 2015-11-12 15:55:46 · 565 阅读 · 0 评论 -
codeforces 321# D. Kefa and Dishes (状态压缩DP)
题目:http://codeforces.com/contest/580/problem/D题意:有n种菜(每一种菜有一个满意值ai>=0),你准备吃m种,每种一次。但是如果你按某种规则吃两种菜的话会增加额外的满意值,比如规则(xi yi ci)就是你先吃第xi个菜,然后马上吃第yi个菜,那么你就会额外增加ci点满意值。有k个这样的规则,问你吃m种菜后的最大满意值是多少。分析:定义dp[i原创 2015-09-24 16:16:59 · 1132 阅读 · 0 评论 -
codeforces #302 Remembering Strings (dp)
题目:http://codeforces.com/contest/544/problem/E题意:给定n个长度为m的字符串。为了让每个字符串变为独特的(该字符串的某一个位置存在一个字符ch,其他串的这个位置都不存在这个字符ch),你可以改变某些字符串的某些字符。现在告诉你改变每个字符的代价,求让所有的串成为独特的串的最小代价。分析:定义dp[bitmask],bitmask的二进制中的1表原创 2015-11-12 16:41:49 · 515 阅读 · 0 评论 -
zoj3905 Cake (dp)
题目:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3905题意:有n(n is even)个蛋糕,对于每个蛋糕Alice和Bob都会有个评价值。然后分为n/2次,每次Alice挑两个蛋糕让Bob先选(Bob会拿那个自己认为价值高的那个),剩下的那个留给自己。问怎么选使得Alice选的蛋糕的价值最大(Alice认为的价原创 2015-10-14 10:23:46 · 406 阅读 · 0 评论 -
hdu 5564 Clarke and digits (dp+矩阵加速)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=5564题意:问题描述克拉克是一名人格分裂患者。某一天,克拉克变成了一个研究人员,在研究数字。 他想知道在所有长度在[l, r][l,r]之间的能被77整除且相邻数位之和不为kk的正整数有多少个。 输入描述第一行一个整数T(1 \le T \le 5)T(1≤T≤5),表原创 2015-11-16 13:20:12 · 1055 阅读 · 0 评论 -
codeforces #331 D. Wilbur and Trees (dp)
题目:http://codeforces.com/contest/596/problem/D题意:有n棵高为h的树在一排,已知每棵树的位置pos。现在你从最左边或者从最右边等概率挑选一棵树砍断,树向左倒的概率为P向右倒的概率为(1-P),树倒下时如果撞到了其它的树会发生连锁反应,假如还有树没有倒完,你还会等概率挑选一棵树砍断。现在问你所有树倒下时覆盖地面的长度的期望。分析:开始定义dp原创 2015-11-18 19:33:15 · 530 阅读 · 0 评论 -
cf #311 E. Ann and Half-Palindrome (dp+字典树)
题目:http://codeforces.com/contest/557/problem/E题意:定义半回文串:字符串前面一半的奇数位上的字符和后一边对应位置上的字符相同的字符串。给定长度|s|分析:定义dp[i][j]表示区间[i,j]代表的子串是否为半回文串。然后n^2推出所有的半回文子串。将所有的半回文子串插入字典树,然后遍历一下字典树,找到正确的位置输出就行了。代码:#in原创 2015-12-06 13:15:06 · 377 阅读 · 0 评论 -
codeforces #336 D. Zuma (区间dp)
题目:http://codeforces.com/contest/608/problem/D题意:给定长度为n(n分析:定义dp[L][R]代表区间[L,R]的最少消除次数。1.当L==R时:dp[L][R]=1;2.当L --2.a) 当s[L]单独删掉,dp[L][R]=1+dp[L+1][R]; --2.b) 当s[L]作为回文串的一部分删掉时,那么s[L]=原创 2016-02-22 21:17:02 · 440 阅读 · 0 评论 -
codeforces GoodBye2015 D.New Year and Ancient Prophecy (dp+lcp+树状数组)
题目:http://codeforces.com/contest/611/problem/D题意:D. New Year and Ancient Prophecytime limit per test2.5 secondsmemory limit per test512 megabytesinputstandard input原创 2016-03-12 15:50:29 · 570 阅读 · 0 评论 -
codeforces #343 C. Famil Door and Brackets (dp)
题目:http://codeforces.com/contest/629/problem/C题意:给定长度为m的只包含括号的字符串s,你可以在这个字符串前面或者后面添加x个字符'('或‘)’使得字符串的长度为n,且括号匹配。求方案数。分析:先定义dp[i][j],表示在s前面添加i个字符,且左括号为j个的方案数。再定义dp1[i][j],表示剩余长度为i,之前的串左括号比右括号多j原创 2016-03-24 20:01:42 · 471 阅读 · 0 评论 -
hdu 2825 Wireless Password (ac自动机+状态压缩dp)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=2825题意:给定m个模式串,问有多少个长为n的文本串至少包含K种模式串。分析:首先将模式串建ac自动机,然后在求fail指针的时候把到达某个节点需要加的贡献求出来(由于最多只有10种模式串,可以将模式串种数压缩到一个int型)。然后记忆化搜索,dp[len][cur][num],len代表当原创 2015-09-07 12:45:42 · 402 阅读 · 0 评论 -
poj 2778 DNA Sequence (ac自动机+矩阵快速幂优化dp)
题目:http://poj.org/problem?id=2778题意:给出N段DNA序列(仅由‘A’,'T','G','C'四种字符组成),求一段长为L的DNA序列不包含前面给出的任何DNA序列的方案数。分析:将N个字符串建成ac自动机,然后把所有禁止走的位置标记出来,然后利用ac自动机建二维矩阵Matrix[][],Matrix[u][v]表示节点u走一步到节点v的路径数。然后原创 2015-09-06 12:15:46 · 501 阅读 · 0 评论 -
CF 274 div2 E - Riding in a Lift (递推)
题目:http://codeforces.com/contest/479/problem/E题意:有一个n层的电梯,告诉你的起始位置A和障碍物的位置B,还有你每次移动的最大距离不能大于等于当前位置到障碍物的距离。如果你从起始位置移动K次,有多少种不同的路径。分析:把可以从当前位置走到的下一个区间找到,标记区间的端点,维护前缀和就行了。暴力代码(用来对答案):#include原创 2015-06-03 12:52:11 · 463 阅读 · 0 评论 -
HNU13303 Counting substhreengs(递推)
题目:http://acm.hnu.cn/online/?action=problem&type=show&id=13303&courseid=0题意:给你一个字符串,由数字和其他字符组成,问有多少个子串,使得子串里面的数字和为3的整数倍(子串必须连续,而且里面不能有其他字符)。分析:开3个数组,dp0[i],dp1[i],dp2[i]。dp0[i]表示从字符串的最后一个位置到位置i有多少原创 2015-07-26 10:14:33 · 972 阅读 · 0 评论 -
hdu5318 The Goddess Of The Moon (矩阵快速幂优化dp)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=5318题意:给定n个数字串和整数m,规定若数字串s1的后缀和数字串s2的前缀相同且长度≥2,则s2可以拼接在s1的后面,每个串可以重复用,问拼接m个数字串有多少种方法。分析:定义dp[i][j]为拼接了i个串并且这个长串以s[j](输入的第j个数字串)结尾的方案数。那么有 for(int i=原创 2015-07-29 23:20:04 · 1034 阅读 · 0 评论 -
hdu5335 Walk Out (递推||广搜)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=5335题意:给你N*M的01矩阵,求从(1,1)位置走到(N,M)的最小二进制数,输出不含前导0。分析:为了不让当前位置向上走,可以先将所有的起点预处理出来。当(1,1)为1,那么起点只有一个,就是(1,1);当(1,1)为0,起点就是从(1,1)可达的并且只走0的这些点,然后把这些起点离终点最近的原创 2015-07-31 10:22:42 · 531 阅读 · 0 评论 -
LA3357 Pinary (递推)
题目:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=32000题意:把所有不含前导0和连续1的二进制串从小到大排列,即1,10,100,101,1000,1001......求第K个串。k≤90,000,000。分析:dp[i][j]代表长度为i最后一位是j的串的个数。那么dp[i][1]=dp[i-1][0],原创 2015-08-01 14:51:47 · 477 阅读 · 0 评论 -
hdu 5389 Zero Escape (dp)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=5389题意:定义数根:①把每一位上的数字加起来得到一个新的数,②重复①直到得到的数只有1位。给定n,A,B和n个一位数,求把这n个数分成两部分,使得这两部分的其中一部分的和的数根等于A另外一部分的和的数根等于B的方案数。分析:一个数a的数根s=(a-1)%9+1,为了方便直接用s=a%9,其中0代表原创 2015-08-14 22:28:00 · 777 阅读 · 0 评论 -
LA3942 Remember the Word(字典树+记忆化搜索)
题目:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=22109题意:给出一个由S个不同单词组成的字典和一个长字符串。把这个字符串分解成若干个单词的连接(单词可以重复使用),由多少种方法?比如,有4个单词a,b,cd,ab,则abcd有两种分解方法:a+b+cd和ab+cd分析:首先将输入的字典建成字典树。然后记忆化搜原创 2015-08-03 19:58:11 · 650 阅读 · 0 评论 -
uva 11468 Substring (ac自动机+记忆化搜索)
题目:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=2463题意:给出一些字符和格子对应的选择概率,随机选择L次后将得到一个长度为L的随机字符串S(每次独立随机)。给出K个模版串,计算S不包含任何模版串的概率(即任何一个模版串都不是S的连续子串)。原创 2015-09-03 21:56:20 · 489 阅读 · 0 评论 -
uvalive 3907 Puzzle (ac自动机+有向图判环+dp)
题目:https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1908题意:给定大写字母的前n个字符,然后给m个禁止的串,求一个最长的串不包含这些禁止的串(只包含大写字母前n个字符,禁止的串也是)。如无解输出“No”。分析:无解的情况原创 2015-09-09 22:28:21 · 627 阅读 · 0 评论 -
zoj 3494 BCD Code (ac自动机+数位dp)
题目:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=4317题意:给定N个01串,再给定区间[a,b],问区间[a,b]里面有多少个数转化成BCD码之后不包含任何前面给出01串。分析:首先将01串建ac自动机,然后把不可到达的点标记出来。用二维数组Matrix[][]把状态转移图(比如Matirx[cur][x原创 2015-09-05 11:16:42 · 923 阅读 · 0 评论 -
hdu 5411 CRB and Puzzle (矩阵快速幂优化dp)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=5411题意:按题目转化的意思是,给定N和M,再给出一些边(u,v)表示u和v是连通的,问走0,1,2.....M步的方案数。分析:这题和 hdu5318 The Goddess Of The Moon差不多,就是多了一个等比数列求和。代码:#include #include #inclu原创 2015-08-21 15:53:29 · 613 阅读 · 0 评论 -
hdu 2457 DNA repair (ac自动机+记忆化搜索)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=2457题意:给出N个DNA序列(只包含’A‘,'T','G','C'四种字符),然给一段DNA序列S,问最少改多少个字符使得这个DNA序列不包含前面任意一个DNA序列。分析:将前面N个DNA序列建ac自动机,然后找出禁止走的位置。定义dp[i][j],i表示当前在字符串S的位置,j表示对应在原创 2015-09-06 13:06:06 · 472 阅读 · 0 评论 -
codeforces #334 D. Babaei and Birthday Cake (线段树或者dp+二分)
题目:http://codeforces.com/contest/629/problem/D题意:给定一个长度为n(n分析:定义dp[sum]表示和为sum,以dp[sum]结尾的最小体积。(类似最长上升子序列的做法)我们发现sum越小,那么dp[sum]就越小,否则,dp[sum]不够优,就不满足定义。所以dp[sum]数组是具有单调性的。维护dp[sum]数组的话,用一原创 2016-03-24 20:22:40 · 434 阅读 · 0 评论