UVA247- Calling Circles
来源:互联网 发布:中国经济现状数据 编辑:程序博客网 时间:2024/05/29 17:02
利用map的特性进行编号,然后利用floyd求出传递闭包,最后又用到DFS进行输出,每一步都很重要。
#include<stdio.h>#include<map>#include<string>#include<iostream>#include<string.h>#include<vector>using namespace std; int n,m,cas=1;map<string,int>name;int f[30][30];int vis[30];vector<string>Name;void dfs(int u){ vis[u]=1; for(int i=0;i<n;i++) if(f[u][i]&&f[i][u]){ if(!vis[i]){ cout<<", "<<Name[i]; dfs(i); } }}int main(){ while(scanf("%d%d",&n,&m)!=EOF) { name.clear(); Name.clear(); memset(f,0,sizeof f); memset(vis,0,sizeof vis); // if(cas>1) puts(""); int id=0; if(n==0&&m==0) break; for(int i=0;i<m;i++){ string a,b; cin>>a>>b; if(!name.count(a)) { name[a]=id++; Name.push_back(a); } if(!name.count(b)) { name[b]=id++; Name.push_back(b); } int x=name[a],y=name[b]; f[x][y]=1; } for(int k=0;k<n;k++) for(int i=0;i<n;i++) for(int j=0;j<n;j++) f[i][j]=(f[i][j]||(f[i][k]&&f[k][j])); if(cas>1) cout<<endl; cout<<"Calling circles for data set " << cas++ <<":" << endl; for(int i=0;i<n;i++){ if(!vis[i]){ cout<<Name[i]; dfs(i); cout<<endl; } } } return 0;}
0 0
- UVa247 - Calling Circles
- UVA247- Calling Circles
- UVa247 Calling Circles
- UVa247: Calling Circles 题解
- Uva247——Calling Circles
- uva247-Calling Circles-Floyd算法
- uva247 - Calling Circles(传递闭包+DFS)
- Uva247.Calling Circles(Floyd求连通性)
- UVA247- Calling Circles(有向图的强连通分量)
- [Uva247][Tarjan求强连通分量][Calling Circles]
- UVA247 Calling Circles (有向图传递闭包)
- 算法竞赛入门经典 第二版 例题11-4 电话圈 Calling Circles uva247
- UVA247[Calling Circles] Floyed求传递闭包 || tarjan求SCC
- Calling Circles
- Calling Circles
- 电话圈(Calling Circles,ACM/ICPC World Finals 1996,UVA247) ——Floyd图的传递闭包
- UVa 247 Calling Circles
- UVA 247 Calling Circles
- 取出字符串中间以#隔开的内容
- 使用gson-2.2.4.jar来处理json数据
- 2010年诺基亚移动创新大赛决赛入选作品公布
- Java之LinkedHashMap
- tomcat下配置https环境
- UVA247- Calling Circles
- Java abstract修饰符
- Reading and modify OS X plist file by command line
- 捕鱼修改游戏进出记录
- Cadence Orcad 无法启动出现Capture.exe找不到cdn_sfl401as.dll问题
- 八皇后问题的python代码
- hdoj1162 Eddy's picture
- 直接插入排序的三种实现
- HDU4407 Sum【容斥原理】