G - 变形课 HDU - 1181(搜索之dfs)
呃…变形课上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)相关推荐
- HDU1181:变形课(并查集 + DFS + BFS)
变形课 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/65536 K (Java/Others) Total Submissi ...
- HDU 1181 变形课(dfs)
变形课 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/65536 K (Java/Others) Total Submi ...
- hdu dfs入门java_hdu1181变形课dfs/bfs/并查集三种解法(java)
题目链接 Problem Description 呃-变形课上Harry碰到了一点小麻烦,因为他并不像Hermione那样能够记住所有的咒语而随意的将一个棒球变成刺猬什么的,但是他发现了变形咒语的一个 ...
- HDU1181 变形课【DFS+关系闭包+bitset】
变形课 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/65536 K (Java/Others) Total Submissi ...
- hdu1181变形课dfs/bfs/并查集三种解法(java)
题目链接 Problem Description 呃-变形课上Harry碰到了一点小麻烦,因为他并不像Hermione那样能够记住所有的咒语而随意的将一个棒球变成刺猬什么的,但是他发现了变形咒语的一个 ...
- HDU1181 变形课【DFS】(废除)
新题解参见:HDU1181 变形课[DFS+关系闭包+bitset] 变形课 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 13107 ...
- HDU1181:变形课 【dfs】
变形课 Time Limit : 2000/1000ms (Java/Other) Memory Limit : 131072/65536K (Java/Other) Total Submissi ...
- 杭电 1181 变形课
Description 呃......变形课上Harry碰到了一点小麻烦,因为他并不像Hermione那样能够记住所有的咒语而随意的将一个棒球变成刺猬什么的,但是他发现了变形咒语的一个统一规律:如果咒 ...
- HDU1181:变形课(DFS)
Description 呃......变形课上Harry碰到了一点小麻烦,因为他并不像Hermione那样能够记住所有的咒语而随意的将一个棒球变成刺猬什么的,但是他发现了变形咒语的一个统一规律:如果咒 ...
最新文章
- 强烈推荐10个新媒体运营必备工具,极大提高工作效率
- 半监督目标检测相关方法总结
- Java程序结合Aapche Ant进行远程服务器文件备份
- CentOS7安装配置redis5.0.5
- Angular使用中的编码tips(持续更)
- hybris backoffice 产品属性和sample data的对应关系
- 无用的设计模式之装饰者模式
- 那些年我踩过的关于layui表格的坑
- tomcat实现https双向认证(在win10系统使用jdk1.8自带工具keytool)
- 理想的低通滤波器、巴特沃斯滤波器、高斯滤波器
- python中缀表达式_中缀表达式变后缀表达式、后缀表达式(逆波兰)求值(python版本)...
- 软路由虚拟服务器,带你入门软路由 篇三:软路由也玩虚拟化——轻松几步教你配置Esxi网卡直通和软路由虚拟机设置(保姆级教程)...
- Windows 内存映射
- 中国移动:4G流量不清零,可分享
- 计算机应用基础7次作业答案,北京中医药大学远程教育“计算机应用基础”第7次作业(14页)-原创力文档...
- Scratch-(五)满天星-画笔绘制五角星
- Unity 2D血条制作方式
- Windows实用工具推荐
- 修改计算机中文用户名,Win10电脑将中文登录用户名更改为英文名的方法
- 中青旅实业携手中金资本推进债务重组具有标杆意义
热门文章
- 免师计算机与学前教育,2014届河南免师生源分布.doc
- python选择语句_3.1Python的判断选择语句
- android 设置网络超时时间设置,Android:AndroidHttpClient-如何设置超时时间?
- 中超联赛提交函数的c语言,国家体育总局
- vue中mixins的理解
- pcie和usb哪个带宽高_了解数字示波器采样率和模拟带宽的规格
- 多多自走棋改动_多多自走棋腾讯版
- C++11中线程所有权转移分析
- Android开发之ApiCloud模块开发步骤
- 西门子cpu指示灯含义_西门子S7200仿真软件如何使用?