hdu 1501 Zipper(DP)
题意:
给三个字符串str1、str2、str3
问str1和str2能否拼接成str3。(拼接的意思可以互相穿插)
能输出YES否则输出NO。
思路:
如果str3是由str1和str2拼接而成,str1的前i个字符和str2的前j个字符一定构成str3的前i+j个字符。(因为拼接必须保证字符的顺序不变)
所以,,,这算是个变形的最长公共子序列?
DP方程:dp[i][j]:str3的前i+j个字符能否由str1的前i个字符和str2的前j个字符拼接而成。布尔型。
看代码,,
代码:
char s1[205], s2[205], s3[505];
bool dp[205][205]; int main(){ int T;
cin>>T;
rep(t,1,T){
scanf("%s%s%s",s1,s2,s3);
int l1=strlen(s1);
int l2=strlen(s2);
int l3=strlen(s3); mem(dp,false);
dp[0][0]=true;
rep(i,1,l1){
dp[i][0]=(dp[i-1][0]&&(s1[i-1]==s3[i-1]));
}
rep(i,1,l2){
dp[0][i]=(dp[0][i-1]&&(s2[i-1]==s3[i-1]));
}
rep(i,1,l1){
rep(j,1,l2){
if(s1[i-1]==s3[i+j-1]){
dp[i][j]=(dp[i][j] || dp[i-1][j]);
}
if(s2[j-1]==s3[i+j-1]){
dp[i][j]=(dp[i][j] || dp[i][j-1]);
}
}
}
if(dp[l1][l2]){
printf("Data set %d: yes\n",t);
}else{
printf("Data set %d: no\n",t);
} } return 0;
}
hdu 1501 Zipper(DP)的更多相关文章
- HDU 1501 Zipper(DFS)
		
Problem Description Given three strings, you are to determine whether the third string can be formed ...
 - HDU 4433 locker(DP)(2012 Asia Tianjin Regional Contest)
		
Problem Description A password locker with N digits, each digit can be rotated to 0-9 circularly.You ...
 - POJ 2192 :Zipper(DP)
		
http://poj.org/problem?id=2192 Zipper Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 1 ...
 - HDU 3008 Warcraft(DP)
		
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3008 题目大意:人有100血和100魔法,每秒增加 t 魔法(不能超过100).n个技能,每个技能消耗 ...
 - hdu 2059 龟兔赛跑(dp)
		
龟兔赛跑 Problem Description 据说在很久很久以前,可怜的兔子经历了人生中最大的打击——赛跑输给乌龟后,心中郁闷,发誓要报仇雪恨,于是躲进了杭州下沙某农业园卧薪尝胆潜心修炼,终于练成 ...
 - HDU 4832 Chess (DP)
		
Chess Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submi ...
 - HDU 4945 2048(dp)
		
题意:给n(n<=100,000)个数,0<=a[i]<=2048 .一个好的集合要满足,集合内的数可以根据2048的合并规则合并成2048 .输出好的集合的个数%998244353 ...
 - HDU 2340 Obfuscation(dp)
		
题意:已知原串(长度为1~1000),它由多个单词组成,每个单词除了首尾字母,其余字母为乱序,且句子中无空格.给定n个互不相同的单词(1 <= n <= 10000),问是否能用这n个单词 ...
 - hdu 2571 命运(dp)
		
Problem Description 穿过幽谷意味着离大魔王lemon已经无限接近了! 可谁能想到,yifenfei在斩杀了一些虾兵蟹将后,却再次面临命运大迷宫的考验,这是魔王lemon设下的又一个 ...
 
随机推荐
- POJ2352 Stars (静态二叉检索树)
			
https://vjudge.net/problem/POJ-2352 分析: 由于是按照y坐标的升序,y坐标向等的按x的升序的顺序给出星星.那么某个星星的等级数就是在他前面x坐标小于等于他的x坐标的 ...
 - Android实现自动登录和记住密码
			
效果图: 在勾选自动登录后下次打开软件会直接跳过登录界面 代码: protected void onCreate(Bundle savedInstanceState) { super.onCreate ...
 - 用java代码遍历excel文件并回显
			
今天需要完成282个指标,分析后发现好多都是可复用的字段和方法,生成的dao类也是很多重复的代码,所以写下了简单的自动化遍历excel的test方法, excel业务逻辑如下,用了 HSSFSheet ...
 - Jenkins 进阶篇 - 任务关联
			
有时候我们的一个任务里面会进行很多的步骤,例如构建一个后端的 Java 服务,可能会有代码静态扫描,静态扫描通过后会打包成 jar 或者 war 文件,打包成功后可能还会对制品进行存档备份,然后可能会 ...
 - dede调用数据时,字符串替换函数使用
			
{dede:sql sql="SELECT typename,typedir,typeimg FROM #@__arctype where topid=30 limit 0,6"} ...
 - Shell系列(1)- Shell概述
			
Shell是什么 Shell是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序,用户可以用Shell来启动.挂起.停止甚至时编写一些程序 Shell还是一个功能 ...
 - git 操作 :从远程仓库gitLab上拉取指定分支到本地仓库;git如何利用分支进行多人开发  ;多人合作代码提交实践
			
例如:将gitLab 上的dev分支拉取到本地 git checkout -b dev origin/dev 在本地创建分支dev并切换到该分支 git pull origin dev 就可以把git ...
 - P6800-[模板]Chirp Z-Transform【NTT】
			
正题 题目链接:https://www.luogu.com.cn/problem/P6800 题目大意 给出一个\(n\)此多项式\(P\),对于\(k\in[0,m-1]\)所有的求\(P(c^k) ...
 - P7518-[省选联考2021A/B卷]宝石【主席树,二分】
			
正题 题目链接:https://www.luogu.com.cn/problem/P7518 题目大意 给出\(n\)个点的一棵树,每个点上有不大于\(m\)的数字. 然后给出一个长度为\(c\)的各 ...
 - 【MySQL】MySQL进阶(外键约束、多表查询、视图、备份与恢复)
			
约束 外键约束 外键约束概念 让表和表之间产生关系,从而保证数据的准确性! 建表时添加外键约束 为什么要有外键约束 -- 创建db2数据库 CREATE DATABASE db2; -- 使用db2数 ...