hdu-1181(bfs)
Posted 2018zxy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hdu-1181(bfs)相关的知识,希望对你有一定的参考价值。
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1181
思路:bfs,就是每次找到匹配麻烦一点,注意如果结尾和开头相同,就不算。
#include<iostream> #include<cstdio> #include<cstring> #include<vector> #include<queue> using namespace std; int vis[120],st,ed; char str[120]; struct Node{ int x,y; }; vector <Node> vc; void bfs() { int i,j; memset(vis,0,sizeof(vis)); queue <Node> q; for(i=0;i<vc.size();i++) if(vc[i].x==st) { vis[i]=1; q.push(vc[i]); } while(!q.empty()) { Node tmp=q.front(); q.pop(); if(tmp.y==ed) { printf("Yes. "); return ; } for(i=0;i<vc.size();i++) if(vc[i].x==tmp.x&&vc[i].y==tmp.y) vis[i]=1; for(i=0;i<vc.size();i++) { if(!vis[i]&&tmp.y==vc[i].x) { q.push(vc[i]); } } } printf("No. "); } int main(void) { st=‘b‘-‘a‘; ed=‘m‘-‘a‘; while(~scanf("%s",str)) { if(str[0]==‘0‘) { bfs(); vc.clear(); } Node tmp; tmp.x=str[0]-‘a‘; tmp.y=str[strlen(str)-1]-‘a‘; if(tmp.x==tmp.y) continue; vc.push_back(tmp); } return 0; }
以上是关于hdu-1181(bfs)的主要内容,如果未能解决你的问题,请参考以下文章