Gym 101572 I.Import Spaghetti【Floyd最小环+输出路径】
来源:互联网 发布:软件研发部部门职责 编辑:程序博客网 时间:2024/06/15 23:29
题目大意:
输出最小环的路径。
思路:
板子= =
Ac代码:
#include<stdio.h>#include<string.h>#include<iostream>#include<map>#include<stack>using namespace std;map<string,int >s;map<int,string>re;int n;int path[605][605];int mp[605][605];int dist[605][605];void add(int u,int v){ mp[u][v]=dist[u][v]=1;}void init(){ memset(path,0,sizeof(path)); for(int i=1;i<=n;i++) { for(int j=1;j<=n;j++) { mp[i][j]=dist[i][j]=0x3f3f3f3f; } }}void getPath(int i ,int j){ if(i==j) return; if(path[i][j]==0) cout<<re[j]<<" "; else{ getPath(i,path[i][j]); getPath(path[i][j],j); }}void Slove(){ int x,y,z; int minn=0x3f3f3f3f; for(int k=1;k<=n;k++) { for(int i=1;i<=n;i++) { for(int j=1;j<=n;j++) { if(dist[i][j]!=0x3f3f3f3f&&mp[j][k]!=0x3f3f3f3f&&mp[k][i]!=0x3f3f3f3f) { if(dist[i][j]+mp[j][k]+mp[k][i]<minn) { x=i,y=j,z=k; minn=dist[i][j]+mp[j][k]+mp[k][i]; } } } } for(int i=1;i<=n;i++) { for(int j=1;j<=n;j++) { if(dist[i][k]!=0x3f3f3f3f&&dist[k][j]!=0x3f3f3f3f) { if(dist[i][k]+dist[k][j]<dist[i][j]) { dist[i][j]=dist[i][k]+dist[k][j]; path[i][j]=k; } } } } } for(int i=1;i<=n;i++) { if(mp[i][i]==1) { cout<<re[i]<<endl; return ; } } for(int i=1;i<=n;i++) { for(int j=1;j<=n;j++) { if(mp[i][j]==1&&mp[j][i]==1) { cout<<re[i]<<" "<<re[j]<<" "<<endl; return ; } } } if(minn==0x3f3f3f3f)printf("SHIP IT\n"); else { cout<<re[x]<<" "; getPath(x,y); cout<<re[z]<<endl; }}int main(){ while(~scanf("%d",&n)) { init(); int cnt=0; for(int i=1;i<=n;i++) { char temp[100000];scanf("%s",temp); s[temp]=++cnt; re[cnt]=temp; } for(int i=1;i<=n;i++) { char temp[100000];scanf("%s",temp); char sss[100000]; int u=s[temp]; int d;scanf("%d",&d); getchar(); for(int j=0;j<d;j++) { int l=0; int flag=0; gets(temp); int len=strlen(temp); for(int j=0;j<len;j++) { if(temp[j]==' ') { flag=1; continue; } if(temp[j]==','||j==len-1) { if(j==len-1)sss[l++]=temp[j]; flag=0; sss[l]='\0'; int v=s[sss]; l=0; add(u,v); continue; } if(flag==1) { sss[l++]=temp[j]; } } } } Slove(); }}
阅读全文
0 0
- Gym 101572 I.Import Spaghetti【Floyd最小环+输出路径】
- POJ1734(floyd求最小环的路径)
- poj1734Sightseeing trip【floyd+最小环+路径记录】
- 【Floyd求最小环 && 保存路径】POJ
- 多源最短路径Floyd、Floyd求最小环【模板】
- 多源最短路径Floyd、Floyd求最小环【模板】
- floyd求最小环
- floyd求最小环
- floyd求最小环
- floyd求最小环
- FLOYD 求最小环
- floyd求最小环
- floyd最小环
- 最小环(floyd)
- hdu1599+floyd最小环
- floyd求最小环
- Floyd求最小环
- Floyd最小环算法
- 那些年集体离职的知名投资人们!
- 不仅是冰川,这款球形无人机还要去到更多恶劣的地方
- HAX-8团队今天“毕业”,15个项目交出了一份怎样的答卷?
- 按巴菲特买IBM股票的逻辑看,苹果股票还得跌
- 站在社群、企业 SaaS 和安全的风口,小密圈能飞起来吗?
- Gym 101572 I.Import Spaghetti【Floyd最小环+输出路径】
- phpstorm插件精选
- 【爱搞机·妹测】猫王3收音机 怀旧清新体验
- 虚拟助手、Daydream VR、AI与机器学习:Google的当下和未来
- 长见识了,音乐社交原来还可以这样玩儿!
- 没投YY印证我们有多傻 经纬中国错过直播第一桶金
- 全面自动化!传美的将收购德工业机器人制造商库卡
- FreeRTOS系统内核控制函数
- ArrayList