hoj2434 going to know him
2012-01-30 17:19
489 查看
/*This Code is Submitted by billforum for Problem 2434 at 2012-01-30 17:11:48*/ #include <iostream> #include <queue> #include <memory.h> using namespace std; struct point { int length;//朋友的个数 int step; bool visit; int f[1001];//存放朋友的号码 int num; }; point data[1001]; bool know[1001][1001];//标识两人认识不 int main(int args,char **argv) { int g,n,gn,ntmp,ans=-1; int atmp[1001]; while(cin>>g>>n) { if(g==0&&n==0) break; //初始化 for(int i=0;i<n;i++) { data[i].length=0; data[i].step=0; data[i].visit=0; data[i].num=i; for(int j=0;j<1001;j++) data[i].f[j]=-1; } ans=-1; for(int i=0;i<1001;i++) for(int j=0;j<1001;j++) know[i][j]=0; //对输入数据进行处理,构造关系 for(int i=0;i<g;i++) { cin>>gn; for(int j=0;j<gn;j++) cin>>atmp[j]; for(int k=0;k<gn;k++) { int t=atmp[k]; for(int j=k+1;j<gn;j++) { int s=atmp[j]; if(!know[t][s]) { data[t].length++; data[s].length++; data[t].f[data[t].length-1]=s; data[s].f[data[s].length-1]=t; know[t][s]=1; know[s][t]=1; } } } } queue<point> list; data[0].visit=1; list.push(data[0]); while(!list.empty()) { point tmp=list.front(); if(tmp.num==n-1) { ans=tmp.step; break; } //广搜 for(int k=0;k<tmp.length;k++) { int i=tmp.f[k]; if(data[i].visit) continue; else { data[i].visit=1; data[i].step=tmp.step+1; list.push(data[i]); } } list.pop(); } if(ans==-1) cout<<"I can never know wywcgs!"<<endl; else if(ans==1||ans==0) cout<<"I do know wywcgs!"<<endl; else { cout<<"I can know wywcgs by at most "<<ans-1<<" person(s)!"<<endl; } } return 0; }
http://acm.hit.edu.cn/hoj/problem/view?id=2434
广搜思想,将每人认识的朋友存在一个变量中,然后在每个搜一遍。
相关文章推荐
- bfs hoj Going to know him
- poj2762 Going from u to v or from v to u?(强联通+拓扑排序)
- POJ 2762 — Going from u to v or from v to u? 强连通+拓扑
- When you’re nearly 40 and unmarried, and you realize you’re going to be okay
- Fryer: CIF-SS hockey playoffs is going to be difficult
- Top 10 Most Useful iOS Libraries to Know and Love
- how to know how many objects a class has generated?
- Tonight going to HK
- Everything you never wanted to know about kobjects, ksets, and ktypes
- how to know the type of browser
- 提高网页的效率 Use YSlow to know why your web Slow第1/2页
- [POJ2762]Going from u to v or from v to u?
- CSS Design: Going to Print
- 11gR2 Clusterware and Grid Home - What You Need to Know (文档 ID 1053147.1)
- poj 2762 Going from u to v or from v to u?(强连通分量+缩点重构图+拓扑排序)
- poj Going from u to v or from v to u?
- Dissecting shared libraries --- Get to know your shared library
- TCP_CORK: More than you ever wanted to know
- 11gR2 Clusterware and Grid Home - What You Need to Know (Doc ID 1053147.1)