[HDU] 1181 变形课-简单建模后广搜
题目链接:
http://acm.hdu.edu.cn/showproblem.php?pid=1181
方法:以所有咒语看做一条起点为首字母,终点为末字母的有向边来建立有向图。然后在图中判断目标路径是否存在,判断的方法是 :如果目标路径的起点和终点不都在图中出现,则直接得出不存在该路径,否则广搜索来判断目标路径是否存在。
感想:简单题目,但后期需要频繁重温代码以熟悉广搜代码的写法。该题使用的是邻接矩阵。
代码:
#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 变形课-简单建模后广搜相关推荐
- HDU 1181 变形课(dfs)
变形课 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/65536 K (Java/Others) Total Submi ...
- HDU 1181 变形课
题目链接http://acm.hdu.edu.cn/showproblem.php?pid=1181 此题多种方法.比如说Flyod传递闭包 就能搞定 这里只写DFS和BFS 熟悉下.只有DFS是我写 ...
- 杭电 1181 变形课
Description 呃......变形课上Harry碰到了一点小麻烦,因为他并不像Hermione那样能够记住所有的咒语而随意的将一个棒球变成刺猬什么的,但是他发现了变形咒语的一个统一规律:如果咒 ...
- HDU ACM 1181 变形课 (广搜BFS + 动态数组vector)-------第一次使用动态数组vector
http://acm.hdu.edu.cn/showproblem.php?pid=1181 题意:给我若干个单词,若单词A的结尾与单词B的开头相同,则表示A能变成B,判断能不能从b开头变成m结尾. ...
- hdu 1253 胜利大逃亡 (广搜)
题目链接 Problem Description Ignatius被魔王抓走了,有一天魔王出差去了,这可是Ignatius逃亡的好机会. 魔王住在一个城堡里,城堡是一个ABC的立方体,可以被表示成A个 ...
- G - 变形课 HDU - 1181(搜索之dfs)
呃-变形课上Harry碰到了一点小麻烦,因为他并不像Hermione那样能够记住所有的咒语而随意的将一个棒球变成刺猬什么的,但是他发现了变形咒语的一个统一规律:如果咒语是以a开头b结尾的一个单词,那么 ...
- [HDU] 2612 Find a way - 用单源最短论经模拟的简单广搜
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=2612 方法:其实就是从两个点分别探寻单源最短路径,两个点到同一个目标位置的最短路径都求出来,相加,然 ...
- hdu dfs入门java_hdu1181变形课dfs/bfs/并查集三种解法(java)
题目链接 Problem Description 呃-变形课上Harry碰到了一点小麻烦,因为他并不像Hermione那样能够记住所有的咒语而随意的将一个棒球变成刺猬什么的,但是他发现了变形咒语的一个 ...
- hdu1181变形课dfs/bfs/并查集三种解法(java)
题目链接 Problem Description 呃-变形课上Harry碰到了一点小麻烦,因为他并不像Hermione那样能够记住所有的咒语而随意的将一个棒球变成刺猬什么的,但是他发现了变形咒语的一个 ...
最新文章
- 字符串和数字之间的转化
- AOL search
- Spring Data Solr教程:将自定义方法添加到单个存储库
- C# 繁体,简体 互转
- 程序员面试金典 - 面试题 05.08. 绘制直线(位运算)
- Thrift 异步模式
- leetcode —— 面试题36. 二叉搜索树与双向链表
- mysql substring函数截取值后赋给一个declare变量
- mysql三大范式 答案_数据库逻辑设计之三大范式通俗理解,一看就懂,书上说的太晦涩...
- Hosts文件与钓鱼网站
- 学习python笔记01
- 近场动力学python_科学网—近动力学最新上线的文章快报:2018年7月 - 韩非的博文...
- 机器学习基础 集成学习进阶(XGBoost+LightGBM)
- 字节跳动 Java 岗一二三面全经过分享
- 百行代码发射红心,程序员何愁命不中女朋友!
- 苹果和android充电线一根,非常实用!一根充电线,同时搞定苹果、安卓、Type-c,出门带它就够了...
- VARIANT 类型说明
- 死锁定理与资源分配图化简法
- 第二章:真分数理论(信度系数的估计)(三)
- 我的思维工具(三)收益半衰期