POJ2192 - Zipper(区间DP)
题目大意
给定三个字符串s1,s2,s3,判断由s1和s2的字符能否组成字符串s3,并且要求组合后的字符串必须是s1,s2中原来的顺序、
题解
用dp[i][j]表示s1的前i个字符和s2的前j个字符能否组成s3的前i+j个字符,有两个子问题,dp[i-1][j]和dp[i][j-1],如果dp[i-1][j]为真并且s1[i]==s3[i+j]或者dp[i][j-1]为真并且s2[j]==s3[i+j]则dp[i][j]=true;否则dp[i][j]=false;
代码:
#include<cstdio>
#include<cstring>
using namespace std;
#define MAXN 205
bool dp[MAXN][MAXN];
char s1[MAXN],s2[MAXN],s3[MAXN*2];
int main()
{
int T,p=0;
scanf("%d",&T);
while(T--)
{
scanf("%s%s%s",s1+1,s2+1,s3+1);
int len1=strlen(s1+1),len2=strlen(s2+1);
dp[0][0]=true;
for(int i=1; i<=len1; i++)
if(dp[i-1][0]&&s1[i]==s3[i])
dp[i][0]=true;
for(int i=1; i<=len2; i++)
if(dp[0][i-1]&&s2[i]==s3[i])
dp[0][i]=true;
for(int i=1; i<=len1; i++)
for(int j=1; j<=len2; j++)
if((dp[i-1][j]&&s1[i]==s3[i+j])||(dp[i][j-1]&&s2[j]==s3[i+j]))
dp[i][j]=true;
else
dp[i][j]=false;
printf("Data set %d: %s\n",++p,dp[len1][len2]?"yes":"no");
}
return 0;
}
POJ2192 - Zipper(区间DP)的更多相关文章
- 【BZOJ-4380】Myjnie 区间DP
4380: [POI2015]Myjnie Time Limit: 40 Sec Memory Limit: 256 MBSec Special JudgeSubmit: 162 Solved: ...
- 【POJ-1390】Blocks 区间DP
Blocks Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 5252 Accepted: 2165 Descriptio ...
- 区间DP LightOJ 1422 Halloween Costumes
http://lightoj.com/volume_showproblem.php?problem=1422 做的第一道区间DP的题目,试水. 参考解题报告: http://www.cnblogs.c ...
- BZOJ1055: [HAOI2008]玩具取名[区间DP]
1055: [HAOI2008]玩具取名 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 1588 Solved: 925[Submit][Statu ...
- poj2955 Brackets (区间dp)
题目链接:http://poj.org/problem?id=2955 题意:给定字符串 求括号匹配最多时的子串长度. 区间dp,状态转移方程: dp[i][j]=max ( dp[i][j] , 2 ...
- HDU5900 QSC and Master(区间DP + 最小费用最大流)
题目 Source http://acm.hdu.edu.cn/showproblem.php?pid=5900 Description Every school has some legends, ...
- BZOJ 1260&UVa 4394 区间DP
题意: 给一段字符串成段染色,问染成目标串最少次数. SOL: 区间DP... DP[i][j]表示从i染到j最小代价 转移:dp[i][j]=min(dp[i][j],dp[i+1][k]+dp[k ...
- 区间dp总结篇
前言:这两天没有写什么题目,把前两周做的有些意思的背包题和最长递增.公共子序列写了个总结.反过去写总结,总能让自己有一番收获......就区间dp来说,一开始我完全不明白它是怎么应用的,甚至于看解题报 ...
- Uva 10891 经典博弈区间DP
经典博弈区间DP 题目链接:https://uva.onlinejudge.org/external/108/p10891.pdf 题意: 给定n个数字,A和B可以从这串数字的两端任意选数字,一次只能 ...
- 2016 年沈阳网络赛---QSC and Master(区间DP)
题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=5900 Problem Description Every school has some legend ...
随机推荐
- WPF杂难解 奇怪的DisconnectedItem
简单场景: 列表绑定后台数据,点击列表项在view的cs中拿点击项的DataContext进一步处理.正常情况下应该是能拿到我绑定上去的数据,但是偶尔会点出来DisconnectedItem,重现几率 ...
- ko list and css gradient
<!DOCTYPE html> <html> <head> <title></title> <script src="js/ ...
- 微软Hololens学院教程- Holograms 101: Introduction with Device【微软教程已经更新,本文是老版本】
这是老版本的教程,为了不耽误大家的时间,请直接看原文,本文仅供参考哦!原文链接:https://developer.microsoft.com/EN-US/WINDOWS/HOLOGRAPHIC/ho ...
- gdb在Mac上的安装步骤
到gdb官网下载gdb安装包,解压后,在“终端”中进入其目录:然后依次执行如下命令行: 1st:CFLAGS='-Wno-string-plus-int -g -O2' ./configure --d ...
- C#解压、压缩RAR文件
using System; using System.Collections.Generic; using System.Text; using System.IO; using Microsoft. ...
- C# winform 弹出输入框
Microsoft.VisualBasic.dll 引用using Microsoft.VisualBasic; string PM = Interaction.InputBox("提示 ...
- 网上测试了很多关于PYTHON的WEBSOCKET样例,下面这个才成功了
这是最底层的, 嘿嘿,我 还是习惯搞个框架来实现急需要的功能... 这个东东玩得很有意思的.. 服务器端的代码: import simplejson import socket import sys ...
- iOS开发UI篇—UITabBarController生命周期(使用storyoard搭建)
iOS开发UI篇—UITabBarController生命周期(使用storyoard搭建) 一.UITabBarController在storyoard中得搭建 1.新建一个项目,把storyb ...
- Android-相册效果(图片缩放 自由滑动)
先上图: 很多时候 我们会有这么一个需求: 展示一组图片 每个Item的图片 可以自由拉伸 滑动 焦点不冲突 网上有很多实现方法 通过自定义Gallery和ImageView来实现 个人不是很推荐 在 ...
- Python解决codeforces ---- 1
第一题 1A A. Theatre Square time limit per test 2 seconds memory limit per test 64 megabytes input stan ...