1. 程式人生 > >hdu-1181(bfs)

hdu-1181(bfs)

stream node problem pac memset struct string ios ems

題目鏈接: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.\n"); 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.\n"); } 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)