HDU--2457 DNA repair
题意:给n个疾病的DNA序列和一个要修复的DNA序列,求最少换掉多少个字母,使得DNA序列不含疾病。不能修复输出-1.
dp[i][j]表示长度为以j节点结尾的串与给定串差异的最小值。
转移的时候,不能走病毒串的尾节点。
具体看代码。
//#pragma comment(linker,"/STACK:1024000000,1024000000")
#include
HDU -- 2296 Ring
题意:给m个字符串,每个字符串有一定的价值,求一个长度不超过n 的字符串,使得它的价值最大。
dp[i][j]表示长度不超过i,以节点j结尾的字符串的最大价值。在用一个字符串数组维护这个字符串即可。
//#pragma comment(linker,"/STACK:1024000000,1024000000")
#include
HDU -- 2825 Wireless Password
题意:给m个字符串,要求长度为n的至少包含k个给定字符串的个数。
dp[i][j][k]表示长度为i,以j节点结尾,包含给定字符串的状态为k的个数。(这题非常容易T。。。QAQ
#include
HDU -- 3341 Lost's revenge
题意:给n的DNA序列和一个待修改的DNA序列,求这的DNA序列通过调换位置能最多包含多少个给定的DNA序列(包含多次重复计算)
丧病的题。。。大家还是去看kuangbin大神的题解http://www.cnblogs.com/kuangbin/p/3163648.html我也是照着敲的=。=
//#pragma comment(linker,"/STACK:1024000000,1024000000")
#include
HDU -- 3247 Resource Archiver
题意:给n的资源串和m个病毒串。求一个串,使它包含所有的资源串而不包含病毒串,求这个串的最小长度。
首先把病毒串和资源串做上不同的标记放到AC自动机中。BFS求出资源串尾节点之间的距离。
然后dp[i][j]表示资源串的状态为i,以j资源串结尾的最小长度。
//#pragma comment(linker,"/STACK:1024000000,1024000000")
#include