hdu 4039 2011成都赛区网络赛I ***
2015-08-06 17:17
369 查看
两层搜索,直接for循环就行了,还要注意不能是自己的朋友
#include<cstdio> #include<iostream> #include<algorithm> #include<cstring> #include<cmath> #include<queue> #include<map> using namespace std; #define MOD 1000000007 const int INF=0x3f3f3f3f; const double eps=1e-5; typedef long long ll; #define cl(a) memset(a,0,sizeof(a)) #define ts printf("*****\n"); const int MAXN=2050; int n,m,tt; char s1[100],s2[100]; int vis[MAXN]; map<string,int> mp; vector<int> vc[MAXN]; int w; struct Str { char str[20]; }s[MAXN],ss[MAXN]; bool cmp1(Str a,Str b) { return strcmp(a.str,b.str)<0; } int sum=1,to,id,Max; bool flag[MAXN]; int bfs(int x) { sum=0; id,Max=0; for(int i=1;i<=w;i++) vis[i]=0,flag[i]=0; flag[x]=1; for(int i=0;i<vc[x].size();i++) { flag[vc[x][i]]=1; } for(int j=0;j<vc[x].size();j++) { int e=vc[x][j]; for(int i=0;i<vc[e].size();i++) { int y=vc[e][i]; if(!flag[y]) { vis[y]++;// if(Max<vis[y]) { Max=vis[y]; id=y; ss[0]=s[y]; sum=1; } } } } for(int i=1;i<=w;i++) { if(Max==vis[i]&&id!=i) { strcpy(ss[sum++].str,s[i].str); } } if(Max==0) return 0; else return sum; } int main() { int i,j,k; #ifndef ONLINE_JUDGE freopen("1.in","r",stdin); #endif scanf("%d",&tt); int ca=1; while(tt--) { printf("Case %d:\n",ca++); scanf("%d%d",&n,&m); int tot=1; int u,v; mp.clear(); for(i=0;i<=2*n;i++) vc[i].clear(); for(i=0;i<n;i++) { scanf("%s%s",s1,s2); if(!mp[s1]) mp[s1]=tot++,u=tot-1,strcpy(s[tot-1].str,s1); else u=mp[s1]; if(!mp[s2]) mp[s2]=tot++,v=tot-1,strcpy(s[tot-1].str,s2); else v=mp[s2]; vc[u].push_back(v); vc[v].push_back(u); } w=tot; while(m--) { scanf("%s",s1); int q=bfs(mp[s1]); if(q==1) { cout<<ss[0].str<<endl; } else if(q>=2) { sort(ss,ss+q,cmp1); cout<<ss[0].str; for(i=1;i<q;i++) { cout<<" "<<ss[i].str; } cout<<endl; } else { printf("-\n"); } } } }
相关文章推荐
- TCP为何采用三次握手来建立连接,若采用二次握手可以吗?
- volley Android or java https ssl exception
- TCP三次握手和四次挥手协议
- iOS -读书笔记-网络请求
- Android Http请求框架二:xUtils 框架网络请求
- Android Http请求框架一:Get 和 Post 请求
- ASIHttpRequest 使用
- Android面HTTP协议发送get要求
- 【python网络编程】利用select实现socket全双工异步通信
- Android网络请求工具类
- 欢迎使用CSDN-markdown编辑器
- HTTP协议详解
- 怎样使用NetFlow分析网络异常流量一
- Linux IO多路复用之epoll网络编程(含源码)
- 请求网络数据的url中带有汉字的解决办法
- HTTP与HTTPS的区别
- [Java Web]Error parsing HTTP request header Note: further occurrences of HTTP header parsing errors
- TCP中的RST复位信号
- http协议分析
- HttpClient