HDOJ-2112HDU Today(Floyd+MAP)
来源:互联网 发布:mac安装卸载软件 编辑:程序博客网 时间:2024/05/16 17:40
坑点:
1、要按双向边做
2、要记得处理出发点和终点相同的情况,直接输出0
#include <cstdio>#include <cstdlib>#include <cstring>#include <algorithm>#include <iostream>#include <string>#include <map>using namespace std;const int MAXN=162;const int INF=0x3F3F3F3F;void work(int t){ int f[MAXN][MAXN]; int i,j,k,n,x,y,l; string st,en; map <string,int> num; num.clear(); memset(f,0x3F,sizeof(f)); for(i=0;i<MAXN;i++) f[i][i]=0; n=0; cin>>st>>en; num[st]=++n; if(num.count(en)) { cout<<0<<endl; while(t--) cin>>st>>en>>l;; return ; } else num[en]=++n; while(t--) { cin>>st>>en>>l; if(num.count(st)) x=num[st]; else { num[st]=++n; x=n; } if(num.count(en)) y=num[en]; else { num[en]=++n; y=n; } if(f[x][y]>l) f[x][y]=f[y][x]=l; } for(k=1;k<=n;k++) for(i=1;i<=n;i++) for(j=1;j<=n;j++) f[i][j]=min(f[i][j],f[i][k]+f[k][j]); if(f[1][2]>=1500005) cout<<-1<<endl; else cout<<f[1][2]<<endl;}int main(){ int n; while(scanf("%d",&n),n!=-1) work(n); return 0;}
0 0
- HDOJ-2112HDU Today(Floyd+MAP)
- HDU 2112 HDU Today(floyd-warshall+map)
- hdu 2112 HDU Today(map+Floyd)
- HDU 2112 HDU Today 最短路问题map+floyd
- hdu 2112 Today【F - map + Floyd - 入门训练】
- hdu2112 HDU Today (floyd+stl-map)
- HDOJ 2112 HDU Today
- hdoj 2112 HDU Today
- hdoj 2112 HDU Today
- HDOJ--2112--HDU Today
- HDOJ 2112 HDU Today
- hdu 2112 Today(最短路 dijkstra+map容器的用法)and 1217(floyd+map)
- hdu 2112 HDU Today(dijkstra && 字符串建图 && floyd加map)
- ACM HDOJ 2112 (HDU Today)
- hdu 2112 HDU Today (floyd算法)
- HDU 2112:HDU Today【Dijkstra & SPFA & Floyd】
- hdu 2112 HDU Today(floyd 算法)
- HDU 2112 HDU Today(Floyd)
- TwinCAT 软件安装级别的简要介绍,倍福FTP
- novaclient的api调用流程与开发
- 如何用css控制dd标签缩进
- IOS 移动支付-持续更新
- onclick触发JS事件 第二次才开始执行的情况
- HDOJ-2112HDU Today(Floyd+MAP)
- P124t40 自然对数
- 关于JIRA启动报错的解决步骤
- LintCode-用递归打印数字
- Intersection of Two Linked Lists
- css防止ul下的li里面内容超出换行
- 【仿去哪儿登录】UITextField输入时检查输入框是否为空
- Nginx 安装
- 中文分词算法总结