题目链接:

http://acm.hdu.edu.cn/showproblem.php?pid=1181

方法:以所有咒语看做一条起点为首字母,终点为末字母的有向边来建立有向图。然后在图中判断目标路径是否存在,判断的方法是 :如果目标路径的起点和终点不都在图中出现,则直接得出不存在该路径,否则广搜索来判断目标路径是否存在。

感想:简单题目,但后期需要频繁重温代码以熟悉广搜代码的写法。该题使用的是邻接矩阵。

代码:

View Code

#include<iostream>
#include<queue>
using namespace std;
bool matrix[26][26];
bool visited[26];
bool inGraph[26];
bool BFSSearch(int x,int y)
{queue<int> q;q.push(x);visited[x] = true;bool re = false;while(!q.empty()){int temp = q.front();q.pop();if(temp==y){re=true;break;}else{for(int i =0;i<26;i++){if(matrix[temp][i] && !visited[i]){visited[i] = true;q.push(i);}}}}return re;
}
int main()
{char s[100];memset(matrix,false,sizeof(matrix));memset(visited,false,sizeof(visited));memset(inGraph,false,sizeof(inGraph));while(scanf("%s",s)!=EOF){if( !(strlen(s)==1 && s[0]=='0') ){int len = strlen(s);int st = s[0]-97;int ed = s[len-1]-97;matrix[st][ed] = true;inGraph[st]=inGraph[ed] =true;}else{if(!inGraph['b'-97])cout<<"No."<<endl;else if(!inGraph['m'-97])cout<<"No."<<endl;else if(BFSSearch('b'-97,'m'-97))cout<<"Yes."<<endl;elsecout<<"No."<<endl;memset(matrix,false,sizeof(matrix));memset(visited,false,sizeof(visited));memset(inGraph,false,sizeof(inGraph));}}     return 0;
} 

转载于:https://www.cnblogs.com/kbyd/archive/2013/04/13/3018717.html

[HDU] 1181 变形课-简单建模后广搜相关推荐

  1. HDU 1181 变形课(dfs)

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

  2. HDU 1181 变形课

    题目链接http://acm.hdu.edu.cn/showproblem.php?pid=1181 此题多种方法.比如说Flyod传递闭包 就能搞定 这里只写DFS和BFS 熟悉下.只有DFS是我写 ...

  3. 杭电 1181 变形课

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

  4. HDU ACM 1181 变形课 (广搜BFS + 动态数组vector)-------第一次使用动态数组vector

    http://acm.hdu.edu.cn/showproblem.php?pid=1181 题意:给我若干个单词,若单词A的结尾与单词B的开头相同,则表示A能变成B,判断能不能从b开头变成m结尾. ...

  5. hdu 1253 胜利大逃亡 (广搜)

    题目链接 Problem Description Ignatius被魔王抓走了,有一天魔王出差去了,这可是Ignatius逃亡的好机会. 魔王住在一个城堡里,城堡是一个ABC的立方体,可以被表示成A个 ...

  6. G - 变形课 HDU - 1181(搜索之dfs)

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

  7. [HDU] 2612 Find a way - 用单源最短论经模拟的简单广搜

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=2612 方法:其实就是从两个点分别探寻单源最短路径,两个点到同一个目标位置的最短路径都求出来,相加,然 ...

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

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

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

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

最新文章

  1. 字符串和数字之间的转化
  2. AOL search
  3. Spring Data Solr教程:将自定义方法添加到单个存储库
  4. C# 繁体,简体 互转
  5. 程序员面试金典 - 面试题 05.08. 绘制直线(位运算)
  6. Thrift 异步模式
  7. leetcode —— 面试题36. 二叉搜索树与双向链表
  8. mysql substring函数截取值后赋给一个declare变量
  9. mysql三大范式 答案_数据库逻辑设计之三大范式通俗理解,一看就懂,书上说的太晦涩...
  10. Hosts文件与钓鱼网站
  11. 学习python笔记01
  12. 近场动力学python_科学网—近动力学最新上线的文章快报:2018年7月 - 韩非的博文...
  13. 机器学习基础 集成学习进阶(XGBoost+LightGBM)
  14. 字节跳动 Java 岗一二三面全经过分享
  15. 百行代码发射红心,程序员何愁命不中女朋友!
  16. 苹果和android充电线一根,非常实用!一根充电线,同时搞定苹果、安卓、Type-c,出门带它就够了...
  17. VARIANT 类型说明
  18. 死锁定理与资源分配图化简法
  19. 第二章:真分数理论(信度系数的估计)(三)
  20. 我的思维工具(三)收益半衰期

热门文章

  1. 【C++】 C++标准模板库(三) Map
  2. python获取渲染之后的网页_Phantomjs抓取渲染JS后的网页(Python代码)
  3. mybatis里的日志实现顺序
  4. factorybean与beanfactory
  5. 《Linux内核分析》课程总结
  6. HDU Problem - 5971 Wrestling Match(染色)
  7. POJ 1742 Coins
  8. 第十一届河南省赛--山区修路
  9. 分数化成有限小数的方法_[153]各种循环小数化成分数的方法归纳
  10. linux下nano修改并保存