题目

刚开始本来觉得可以用队列来写,但是 例如 ta te teta,ta的t先出队列那就不行了,所以还得用dp

dp[i][j] 表示A前i个字符与B前j个字符是否能构成C前i+j个字符
要使 dp[i][j] = 1 :需满足 dp[i-1][j] == 1 && C[i+j-1] == A[i-1]
或者 dp[i][j-1] == 1 && C[i+j-1] == B[j-1]
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std; char str1[210],str2[210],str[500];
int dp[210][210];
int main()
{
int T;
cin>>T;
int Case = 1;
while(T--)
{
cin>>str1>>str2>>str;
memset(dp,0,sizeof(dp));
dp[0][0]=1;
int len1 = strlen(str1);
int len2 = strlen(str2);
for(int i=0; i<=len1; i++)
{
for(int j=0; j<=len2; j++)
{
if(i>0&&dp[i-1][j]==1&&str1[i-1]==str[i+j-1])
dp[i][j]=1;
if(j>0&&dp[i][j-1]==1&&str2[j-1]==str[i+j-1])
dp[i][j]=1;
}
}
if(dp[len1][len2]==1) printf("Data set %d: yes\n",Case++);
else printf("Data set %d: no\n",Case++);
}
return 0;
}

poj 2192 Zipper的更多相关文章

  1. poj 2192 Zipper(区间dp)

    题目链接:http://poj.org/problem?id=2192 思路分析:该问题可以看做dp问题,同时也可以使用dfs搜索求解,这里使用dp解法: 设字符串StrA[0, 1, …, n]和S ...

  2. HDU 1501 & POJ 2192 Zipper(dp记忆化搜索)

    题意:给定三个串,问c串是否能由a,b串任意组合在一起组成,但注意a,b串任意组合需要保证a,b原串的顺序 例如ab,cd可组成acbd,但不能组成adcb. 分析:对字符串上的dp还是不敏感啊,虽然 ...

  3. ACM POJ 2192 Zipper

    题目大意:输入字符串a,b,c 要求推断c是否有a,b中的个字符保持原有顺序组合而成. 算法思想: DP 用dp[i][j]表示a的前0~i-1共i个字符和b的前0~j-1共j个字符是否构成c[i+j ...

  4. POJ 2192 :Zipper(DP)

    http://poj.org/problem?id=2192 Zipper Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 1 ...

  5. poj 2192 (DP)

    这个题题目意思是给你三个字符串str1,str2,str3.将str3从左自右扫描,去匹配str1和str2中的元素,不可重复,若存在一种匹配方法使得str1和str2都被匹配完全了,则输出yes,否 ...

  6. POJ 2192

    #include <iostream> #include <string> #define MAXN 500 using namespace std; bool dp[MAXN ...

  7. POJ 2192 【DP】

    题意: 给三个字符串,判断前两个在相对顺序不变的情况下是否可以组成第三个字符串. 思路: 先说屌丝: dp[i][j]代表1串的前i个和2串的前j个字符在3串的前i+j个字符中最多能够组合出几个字符. ...

  8. POJ 题目分类(转载)

    Log 2016-3-21 网上找的POJ分类,来源已经不清楚了.百度能百度到一大把.贴一份在博客上,鞭策自己刷题,不能偷懒!! 初期: 一.基本算法: (1)枚举. (poj1753,poj2965 ...

  9. poj 题目分类(1)

    poj 题目分类 按照ac的代码长度分类(主要参考最短代码和自己写的代码) 短代码:0.01K--0.50K:中短代码:0.51K--1.00K:中等代码量:1.01K--2.00K:长代码:2.01 ...

随机推荐

  1. PHP——explode的应用(获取字符串,拆为下拉列表)

    <?php //定义有默认值的函数 function Main3($f=5,$g=6) { echo $f*$g; } Main3(2,3); echo "<br />&q ...

  2. Pandas设置值

    1.创建数据 >>> dates = pd.date_range(', periods=6) >>> df = pd.DataFrame(np.arange(24) ...

  3. 如何通过class文件来查看java的版本

    我们知道class文件是通过javac编译生成的,如果我们想知道是java的那个版本生成的,该怎么做? 很简单,Linux下只要使用od命令,如下: 前四个字节为固定的cafe babe,接下来的四个 ...

  4. 部署描述符(web.xml)和标注(annotation)

    部署描述符(web.xml) 详细信息可在http://www.oracle.com/webfolder/technetwork/jsc/xml/ns/javaee/index.html上下载web- ...

  5. 电商类web原型制作分享——美丽说【附源文件】

    美丽说是国内白领女性时尚消费品牌,精选上千家优质卖家供应商,为用户提供女装.女鞋.女包.配饰.美妆等品类的优质时尚商品. 此原型模板所用到的组件有搜索框.下拉菜单.输入框.选项卡等.交互动作有切换选项 ...

  6. C++ Crypto++ RSA加密资料收集

    C++利用Crypto++,vs2005环境下的RSA应用 基于Crypto++/Cryptopp的rsa密钥生成,rsa加密.解密,rsa签名.验签 Keys and Formats 使用Crypt ...

  7. springmvc相关

    Springmvc的请求注解可分为四类: url请求地址(PathVariable). head请求头(RequestHeader.CookieValue). body请求体(RequestParam ...

  8. 【UI测试】--独特性

  9. reduce 之 mixin实现

    语法: arr.reduce(callback[, initialValue]) 参数:    callback:执行数组中每个值的函数,包含四个参数:    accumulator:累加器累加回调的 ...

  10. Desktop Central帮助您升级Windows 10,获取更新的五大增强功能