• POJ 2192 Zipper

    • 题意:
    • 解题过程:
    • AC代码:

POJ 2192 Zipper

题目传送门

题意:

给出你三个字符串,问你能否把前两个字符串混合成第三个字符串,使得每个字母在原字符串中的前后顺序不改变。

解题过程:

考虑DP,可以用f[i][j]表示第一个字符串枚举到第i位,第二个字符串枚举到第j位时,能否混合成前第三个字符串前i+j位。然后就是简单的转移了。最后f[len1][len2]就是答案了。

AC代码:

#include <iostream>
#include <cmath>
#include <vector>
#include <cstdlib>
#include <cstdio>
#include <cstring>
#include <queue>
#include <stack>
#include <list>
#include <algorithm>
#include <map>
#include <set>
const int maxn=205;int T;
char s1[maxn],s2[maxn],c[maxn*2];
int len1,len2,len;
bool f[maxn][maxn];int main()
{  scanf("%d",&T);int t=1;while(T--){printf("Data set %d: ",t++);scanf("%s%s%s",s1+1,s2+1,c+1); len1=strlen(s1+1);len2=strlen(s2+1);len=strlen(c+1);memset(f,0,sizeof f);for(int i=1;i<=len1;i++){if(s1[i]==c[i]){f[i][0]=1;}else break;}for(int i=1;i<=len2;i++){if(s2[i]==c[i]){f[0][i]=1;}else break;}for(int i=1;i<=len1;i++){for(int j=1;j<=len2;j++){if(s1[i]==c[i+j]&&f[i-1][j]){f[i][j]=1;}if(s2[j]==c[i+j]&&f[i][j-1]){f[i][j]=1;}}}if(f[len1][len2])printf("yes\n");else printf("no\n");}return 0;
}  

本人蒟蒻OIer一枚,欢迎加QQ:840776708一起学习蛤。

转载于:https://www.cnblogs.com/Apocrypha/p/9433671.html

POJ 2192 Zipper (简单DP)相关推荐

  1. 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 ...

  2. POJ1088:滑雪(简单dp)

    题目链接:  http://poj.org/problem?id=1088 题目要求: 一个人可以从某个点滑向上下左右相邻四个点之一,当且仅当高度减小.求可以滑落的最长长度. 题目解析: 首先要先排一 ...

  3. Codeforces 41D Pawn 简单dp

    题目链接:点击打开链接 给定n*m 的矩阵 常数k 以下一个n*m的矩阵,每一个位置由 0-9的一个整数表示 问: 从最后一行開始向上走到第一行使得路径上的和 % (k+1) == 0 每一个格子仅仅 ...

  4. hdu2067 简单dp或者记忆化搜索

    题意: 小兔的棋盘 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Sub ...

  5. 第三讲 数学与简单DP【完结】

    目录 1205. 买不到的数目 [数学结论题] 1211. 蚂蚁感冒 [模拟 / 推理] 1216. 饮料换购 [简单 / 模拟] 2. 01背包问题 [板子题] 1015. 摘花生 [简单DP] 8 ...

  6. hdu 2881(简单dp)

     题意:n*n的矩阵,里面有m个格子是有任务要去完成的,t,x,y表示要在第t秒到达(x,y)的格子完成任务,问你最多可以完成多少 解题思路:简单dp,将时间排个序后就是LIS #include< ...

  7. P1005 矩阵取数游戏(__int128模板/简单dp)

    转跳P1005 题目描述 帅帅经常跟同学玩一个矩阵取数游戏:对于一个给定的 n \times mn×m 的矩阵,矩阵中的每个元素 a_{i,j}a i,j ​ 均为非负整数.游戏规则如下: 每次取数时 ...

  8. 最少拦截系统,简单dp,(学长说这是贪心?!。。。。。。也是醉了)

     description 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能超过前一发的高度.某天, ...

  9. HDU 1158【简单dp】

    题意:给你一个项目,需要几个月来完成买,同时也给你每个月最少需要的工人数.并且告诉你hiring,firing每个工人的钱数,以及每个月应付每个工人的工资.求项目完成时最小花费. 这是个简单dp,思路 ...

  10. 4.15 每周作业 —— 简单DP

    免费馅饼 Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 65536/32768K (Java/Other) Total Submissi ...

最新文章

  1. Javascript实现导航锚点滚动效果实例
  2. VS cmake远程调试ubuntu项目生成报错:“Does not match the generator used previously: Ninja“(删除.vs隐藏文件夹)
  3. 【Tiny4412】烧写Qt文件系统到EMMC
  4. ecshop程序结构说明
  5. linux 进程0 写时复制,linux 写时复制 COW 过程梳理
  6. qt调用仪器驱动库dll实现程控
  7. Ruby学习笔记1 -- 基本语法和数据类型, Class
  8. ansys19.0安装破解教程(图文详解)
  9. Windows权限维持方法
  10. 二进制转三进制 C语言版
  11. TextView 的 StaticLayout,比你想象中复杂点!
  12. 亚裔在澳大利亚难登事业巅峰?会说英语是关键
  13. Vue3通过npm或者yarn启动后,显示“Network: use --host to expose”,无法访问
  14. MySQL中的表中增加删除字段
  15. linux怎么移植安卓rom,【经验技巧】任意手机移植ROM 教程,超详细ROM 技术详细......
  16. 一个例子手把手抬你入门Vue2
  17. Deploying Kylix 3 Applications
  18. 软件测试 通用技术03 测试用例 黑盒测试用例设计方法 等价类划分法 边界值分析法 判定表法 场景法 功能图法 其他用例设计方法 用例设计方法综合选择
  19. 【模型蒸馏】TinyBERT: Distilling BERT for Natural Language Understanding
  20. 一文读懂区块链隐私技术系列之环签名

热门文章

  1. 数据库实体表的关系学习
  2. 上传excel,并保存excel内容
  3. Tesseract-OCR识别中文与训练字库实例
  4. ups维护服务器,UPS电源的在线维护和管理
  5. LINUX开机自启问题
  6. C向Python传递数组和List参数
  7. 京东首页链接的商品竟然下柜?
  8. win8系统服务器地址怎么查,win8查询服务器地址
  9. C# List;数组[] 转 List 和 List 拼接
  10. C# 获取二维数组的元素个数;获取行数,列数