随笔分类 -  DP

摘要:字符串DP 题意:给你三个字符串a,b,c求字符串d的长度。 字符串d满足的要求:是a和b的公共子序列,c是它的子串。 定义dp1[i][j]表示a的第 i 位与b的第 j 位之前相同的子序列长度(包括 i ,j),dp2[i][j]表示a的第 i 位与b的第 j 位之后相同的子序列长度(包括 i ,j)。 查找c的首尾字符在a 和b 的位置,求出c首字符之前a和b的公共子序列的长度以及c尾字符之后a和b的公共子序列的长度,加上c的长度即为所求。#include#include#define maxn 1010#define max(a,b) (a)>(b)?(a):(b)char... 阅读全文
posted @ 2013-08-17 14:26 yongren1zu 阅读(152) 评论(0) 推荐(0)
摘要:一道dp题,转移方程不是自己推出来的。题目的意思是用‘qnmlgb’替换‘hehe’,可以替换也可以不替换,问有多少种情况。如果结尾不是‘hehe’,那么dp[i]=dp[i-1],如果是是‘hehe’,dp[i]=dp[i]+dp[i-4],因为最后一个可以换也可以不换,如果进行替换则是dp[i-4]。#include#include#define M 10007char s[10100];int dp[10100]={1};int main(){ int T,cas=1; scanf("%d",&T); while(T--) { scanf("%s&q 阅读全文
posted @ 2013-08-01 20:41 yongren1zu 阅读(179) 评论(0) 推荐(0)