【BFS】ural 1837
2011-08-22 00:12
495 查看
贡献了一次CE!timus竟然不认<string.h>!
#include <vector> #include <list> #include <map> #include <set> #include <queue> #include <string> #include <deque> #include <stack> #include <algorithm> #include <iostream> #include <iomanip> #include <cstdio> #include <cmath> #include <cstdlib> #include <limits.h> #include <time.h> #include <string.h> using namespace std; int lowbit(int t){return t&(-t);} int countbit(int t){return (t==0)?0:(1+countbit(t&(t-1)));} int gcd(int a,int b){return (b==0)?a:gcd(b,a%b);} #define LL long long #define PI acos(-1.0) #define N 301 #define MAX INT_MAX #define MIN INT_MIN #define eps 1e-8 #define FRE freopen("a.txt","r",stdin) struct node{ string str; int id; bool vis; }name ; vector<int> v ; int cnt; int gao(string a){ int i,j; for(i=0;i<cnt;i++) if(name[i].str==a) return i; name[cnt++].str=a; return cnt-1; } bool cmp(node a,node b){ return a.str<b.str; } void bfs(int k){ queue<int> q; q.push(k); int i,j; name[k].id=0; name[k].vis=1; while(!q.empty()){ int x=q.front(); q.pop(); for(i=0;i<v[x].size();i++){ int y=v[x][i]; if(name[y].vis==0) { q.push(y); name[y].vis=1; name[y].id=name[x].id+1; } } } } int main(){ int n; while(scanf("%d",&n)!=EOF){ int i,j,k; for(i=0;i<=3*n;i++){ v[i].clear(); name[i].id=-1; name[i].vis=0; } cnt=0; for(i=1;i<=n;i++){ string a,b,c; cin>>a>>b>>c; int id1=gao(a); int id2=gao(b); int id3=gao(c); v[id1].push_back(id2); v[id1].push_back(id3); v[id2].push_back(id3); v[id2].push_back(id1); v[id3].push_back(id1); v[id3].push_back(id2); } for(i=0;i<cnt;i++) if(name[i].str=="Isenbaev"){ bfs(i); break; } sort(name,name+cnt,cmp); for(i=0;i<cnt;i++){ cout<<name[i].str<<" "; if(name[i].id==-1)puts("undefined"); else cout<<name[i].id<<endl; } } return 0; }
相关文章推荐
- ural 1837. Isenbaev's Number bfs
- URAL 1837. Isenbaev's Number (map + Dijkstra || BFS)
- URAL 1837. Isenbaev's Number (map + Dijkstra || BFS)
- URAL 1837 Isenbaev's Number (BFS)
- URAL1072 Routing, BFS
- URAL 1145. Rope in the Labyrinth(两次BFS啊 )
- ural 1837. Isenbaev's Number bfs
- URAL 1930 Ivan's Car(BFS)
- URAL 1905 Travel in Time BFS(广度搜索)
- ural 1008 Image Encoding bfs
- URAL 1434 Buses in Vasyuki (双静态邻接链表+BFS)
- URAL 1495 One-two, One-two 2 (BFS)
- URAL 1080 Map Coloring (BFS)
- URAL 1291 Gear-wheels(BFS)
- ural 1106. Two Teams -bfs
- URAL 1008 Image Encoding (BFS)
- ural 1495 bfs
- 【BFS】ural 1033
- ural Pilot Work Experience(dfs + bfs )
- ural 1080. Map Coloring(二分染色bfs)