呃…变形课上Harry碰到了一点小麻烦,因为他并不像Hermione那样能够记住所有的咒语而随意的将一个棒球变成刺猬什么的,但是他发现了变形咒语的一个统一规律:如果咒语是以a开头b结尾的一个单词,那么它的作用就恰好是使A物体变成B物体.
Harry已经将他所会的所有咒语都列成了一个表,他想让你帮忙计算一下他是否能完成老师的作业,将一个B(ball)变成一个M(Mouse),你知道,如果他自己不能完成的话,他就只好向Hermione请教,并且被迫听一大堆好好学习的道理.
Input
测试数据有多组。每组有多行,每行一个单词,仅包括小写字母,是Harry所会的所有咒语.数字0表示一组输入结束.
Output
如果Harry可以完成他的作业,就输出"Yes.",否则就输出"No."(不要忽略了句号)
Sample Input
so
soon
river
goes
them
got
moon
begin
big
0
Sample Output
Yes.

Harry 可以念这个咒语:“big-got-them”.
真心不知道他们怎么想的这种题目,唉。
题目的意思很好理解就是成语接龙,其实这个深搜不算是难。看代码,我在代码中详细解释
代码如下:

#include<iostream>
#include<cstring>
using namespace std;
char a[1010][2];//这个数组的作用就是将每个字符串的开头和结尾保存下来,方便搜索。。
int vis[1010];//记录,神奇的vis。
int ant;//记录有多少个字符串
int dfs(int step)
{if(a[step][1]=='m')//搜索到了最后,如果是m那么就符合题意。return 1;for(int i=0;i<ant;i++){if(a[i][0]!=a[step][1]) continue;//如果上一个的结尾和下一个的开头不一样。就要跳过循环。if(vis[i]) continue;//如果这个字母已经走过了,也要跳过vis[i]=1;//更新为1if(dfs(i)) return 1;}return 0;//没有符合条件的,就返回0
}
int main()
{char b[1010];while(cin>>b){int flag=0;int len=strlen(b);if(b[0]!='0')//0的时候就要结束输入,开始搜索了。{a[ant][0]=b[0];a[ant][1]=b[len-1];ant++;//!!!}else{for(int i=0;i<ant;i++){if(a[i][0]=='b')找到第一个b,开始往下搜索。{memset(vis,0,sizeof(vis));//将vis数组归零。。if(dfs(i)){flag=1;cout<<"Yes."<<endl;break;}}}if(!flag) cout<<"No."<<endl;ant=0;//注意将ant归零。。}}return 0;
}

努力加油a啊,(o)/~

G - 变形课 HDU - 1181(搜索之dfs)相关推荐

  1. HDU1181:变形课(并查集 + DFS + BFS)

    变形课 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/65536 K (Java/Others) Total Submissi ...

  2. HDU 1181 变形课(dfs)

    变形课 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/65536 K (Java/Others) Total Submi ...

  3. hdu dfs入门java_hdu1181变形课dfs/bfs/并查集三种解法(java)

    题目链接 Problem Description 呃-变形课上Harry碰到了一点小麻烦,因为他并不像Hermione那样能够记住所有的咒语而随意的将一个棒球变成刺猬什么的,但是他发现了变形咒语的一个 ...

  4. HDU1181 变形课【DFS+关系闭包+bitset】

    变形课 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/65536 K (Java/Others) Total Submissi ...

  5. hdu1181变形课dfs/bfs/并查集三种解法(java)

    题目链接 Problem Description 呃-变形课上Harry碰到了一点小麻烦,因为他并不像Hermione那样能够记住所有的咒语而随意的将一个棒球变成刺猬什么的,但是他发现了变形咒语的一个 ...

  6. HDU1181 变形课【DFS】(废除)

    新题解参见:HDU1181 变形课[DFS+关系闭包+bitset] 变形课 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 13107 ...

  7. HDU1181:变形课 【dfs】

    变形课 Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 131072/65536K (Java/Other) Total Submissi ...

  8. 杭电 1181 变形课

    Description 呃......变形课上Harry碰到了一点小麻烦,因为他并不像Hermione那样能够记住所有的咒语而随意的将一个棒球变成刺猬什么的,但是他发现了变形咒语的一个统一规律:如果咒 ...

  9. HDU1181:变形课(DFS)

    Description 呃......变形课上Harry碰到了一点小麻烦,因为他并不像Hermione那样能够记住所有的咒语而随意的将一个棒球变成刺猬什么的,但是他发现了变形咒语的一个统一规律:如果咒 ...

最新文章

  1. 强烈推荐10个新媒体运营必备工具,极大提高工作效率
  2. 半监督目标检测相关方法总结
  3. Java程序结合Aapche Ant进行远程服务器文件备份
  4. CentOS7安装配置redis5.0.5
  5. Angular使用中的编码tips(持续更)
  6. hybris backoffice 产品属性和sample data的对应关系
  7. 无用的设计模式之装饰者模式
  8. 那些年我踩过的关于layui表格的坑
  9. tomcat实现https双向认证(在win10系统使用jdk1.8自带工具keytool)
  10. 理想的低通滤波器、巴特沃斯滤波器、高斯滤波器
  11. python中缀表达式_中缀表达式变后缀表达式、后缀表达式(逆波兰)求值(python版本)...
  12. 软路由虚拟服务器,带你入门软路由 篇三:软路由也玩虚拟化——轻松几步教你配置Esxi网卡直通和软路由虚拟机设置(保姆级教程)...
  13. Windows 内存映射
  14. 中国移动:4G流量不清零,可分享
  15. 计算机应用基础7次作业答案,北京中医药大学远程教育“计算机应用基础”第7次作业(14页)-原创力文档...
  16. Scratch-(五)满天星-画笔绘制五角星
  17. Unity 2D血条制作方式
  18. Windows实用工具推荐
  19. 修改计算机中文用户名,Win10电脑将中文登录用户名更改为英文名的方法
  20. 中青旅实业携手中金资本推进债务重组具有标杆意义

热门文章

  1. 免师计算机与学前教育,2014届河南免师生源分布.doc
  2. python选择语句_3.1Python的判断选择语句
  3. android 设置网络超时时间设置,Android:AndroidHttpClient-如何设置超时时间?
  4. 中超联赛提交函数的c语言,国家体育总局
  5. vue中mixins的理解
  6. pcie和usb哪个带宽高_了解数字示波器采样率和模拟带宽的规格
  7. 多多自走棋改动_多多自走棋腾讯版
  8. C++11中线程所有权转移分析
  9. Android开发之ApiCloud模块开发步骤
  10. 西门子cpu指示灯含义_西门子S7200仿真软件如何使用?