传送门

我们记录pos1 pos2 pos3 分别代表现在字符串1,2,3的位置

然后判断pos1是否等于pos3 或者pos2是否等于pos3 分别进行dfs

然后我们发现是可以记忆化的

比方当pos1=pos3且pos2=pos3 那会先搜索pos1+1 那么在这一次的dfs 有可能就提前处理出之后会选择的方式 那么当回溯之后 就会再去走这样的方式 浪费了很多时间

所以只需标记一下vis[pos1][pos2] 之后走到这儿就直接return

#include<bits/stdc++.h>
#define N 1005
using namespace std;
int n,len1,len2,len3;
string s1,s2,s3;
bool ans,vis[N][N];
void dfs(int pos1,int pos2,int pos3)    //在字符串1 2 3 中的位置
{if(pos1==len1&&pos2==len2)  //已经超出了 {ans=true;return;}if(s1[pos1]!=s3[pos3]&&s2[pos2]!=s3[pos3])  return;if(vis[pos1][pos2]) return; //中途截断 vis[pos1][pos2]=true; if(s1[pos1]==s3[pos3])  dfs(pos1+1,pos2,pos3+1);if(s2[pos2]==s3[pos3])  dfs(pos1,pos2+1,pos3+1);
}
int main()
{ios::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL);cin>>n;for(int i=1;i<=n;i++){cin>>s1>>s2>>s3;memset(vis,false,sizeof(vis));ans=false;len1=s1.length();   len2=s2.length();   len3=s3.length();dfs(0,0,0);if(ans) cout<<"Data set "<<i<<": yes"<<endl;else cout<<"Data set "<<i<<": no"<<endl;}return 0;
}

转载于:https://www.cnblogs.com/Patrickpwq/articles/9810405.html

【HDU 1501】Zipper(记忆化搜索)相关推荐

  1. HDU 漫步校园 (记忆化搜索)

    漫步校园 Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 65536/32768K (Java/Other) Total Submissi ...

  2. hdu 1078(记忆化搜索)

    题意: 老鼠每次最多走k步停下来,停下的这个位置只能比上一个停留的位置大,并获取其价值,每次只能水平或垂直走,问最大能得到的价值 解题思路:这道题可以用记忆化搜索解决,dp[i][j]表示老鼠在位置( ...

  3. How many ways HDU - 1978(记忆化搜索关于求多少种方式模板)

    题目: 这是一个简单的生存游戏,你控制一个机器人从一个棋盘的起始点(1,1)走到棋盘的终点(n,m).游戏的规则描述如下: 1.机器人一开始在棋盘的起始点并有起始点所标有的能量. 2.机器人只能向右或 ...

  4. FatMouse and Cheese HDU - 1078(记忆化搜索入门模板)

    题意: n * n的正方形格子(每个格子均放了奶酪),老鼠从(0,0)开始,每次最多移动k步,可以选择上下左右四个方向移动,下一个移动点奶酪块数量必须要大于当前点. 整理模板ing- 题目: FatM ...

  5. POJ1088 滑雪题解+HDU 1078(记忆化搜索DP)

    Description Michael喜欢滑雪百这并不奇怪, 因为滑雪的确很刺激.可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你.Michael想知道 ...

  6. hdu 4722(记忆化搜索)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4722 思路:简单的记忆化搜索,留意一下A==0时的情况就可以了. 1 #include<iost ...

  7. hdu 4597 Play Game(记忆化搜索)

    题目链接:hdu 4597 Play Game 题目大意:给出两堆牌,仅仅能从最上和最下取,然后两个人轮流取,都依照自己最优的策略.问说第一个人对多的分值. 解题思路:记忆化搜索,状态出来就很水,dp ...

  8. hdu 1142 记忆化搜索

    题目是这样的,貌似一开始我这个英语搓的人还理解错了...orz http://acm.hdu.edu.cn/showproblem.php?pid=1142 就是最短路,只不过用dijkstra是从终 ...

  9. HDU 1176 免费馅饼(记忆化搜索)

    免费馅饼 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submi ...

  10. HDU 2452 Navy maneuvers (记忆化搜索)

    题目:http://acm.hdu.edu.cn/showproblem.php?pid=2452 题意:给出一个图,n个点,m条边,保证无环,每个点有一个权值.指定一个点作为起点,Victory和G ...

最新文章

  1. Objective-c的@property 详解
  2. ImportError: cannot import name ‘secure_filename‘的解决办法
  3. 突发!美国最大输油管道遭网络攻击关闭!美媒:为其基础设施的脆弱堪忧
  4. OpenGL绘制二个不同颜色的三角形的实例
  5. 查看当前提供了哪些引擎
  6. 延长汽车寿命的6个良好习惯
  7. fastJson toJSONString注意点
  8. SVG-不是图片的图片
  9. LwIP应用开发笔记之一:LwIP无操作系统基本移植
  10. js简单判断身份证合法性以及身份证生日合法性
  11. Excel中根据单元格背景色求和
  12. 【逐云】阿里“水电煤”背后的人物故事
  13. tomcat7解压版安装过程
  14. SQL 当天在当月、当季度、当年的时间进度
  15. pacman 查询_ArchLinux的包管理系统: pacman
  16. H5开发使用 “navigationStyle“: “custom“,但是最外层的title标题显示不正确
  17. 用java在画布中绘制六个随机英文字母
  18. 什么是软考?计算机专业有没有必要考?
  19. VS:如何解决VS2015的30天试用期已过即VS2015许可证已过期的问题
  20. 关于Qt上位机与下位机stm32数据传输的解析问题(一)

热门文章

  1. 多线路虚拟主机解决方案
  2. 欧盟正研究用三种标准技术应对DNS漏洞
  3. C语言 字符串的读取
  4. ECMAScript 6 入门
  5. Ubuntu16.04 换阿里源
  6. 大致了解写java聊天器所需要的技术
  7. os项目icon和default 等相关图标命名规则和大小设置
  8. pjsip视频通信开发(上层应用)之拨号界面整体界面功能实现
  9. 关于fflush、缓冲区、scanf、EOF等问题真麻烦
  10. [转]C#中的委托和事件(续)