hdu 1874 通畅工程续(最短路模板)
来源:互联网 发布:乐视下载软件 编辑:程序博客网 时间:2024/05/17 05:03
Floyd o(n^3)
#include <iostream>#include <algorithm>#include <cstdio>using namespace std;int n,m,a,b,t,f,e;const int inf=0x3f3f3f3f;int mp[300][300];void Floyd (){ for(int k=0;k<n;k++) for(int i=0;i<n;i++) for(int j=0;j<n;j++) mp[i][j]=min(mp[i][j],mp[i][k]+mp[k][j]);}int main(){ while(scanf("%d%d",&n,&m)!=EOF) { for(int i=0;i<n;i++) for(int j=0;j<n;j++) if(i==j)//mp[i][j]=(i==j?0:inf); mp[i][j]=0; else mp[i][j]=inf; for(int i=0;i<m;i++) { scanf("%d%d%d",&a,&b,&t); if(mp[a][b]>t)//对于数据1 1 10,询问1 1之间应该输出0,而不是10 mp[a][b]=mp[b][a]=t; } Floyd(); scanf("%d%d",&f,&e); if(mp[f][e]==inf) cout<<-1<<endl; else cout<<mp[f][e]<<endl;//mo[i][j]表示i和j之间的最短路 } return 0;}
Dijkstra o(n^2)
#include <iostream>#include <cstdio>using namespace std;const int N=300;const int inf=0x3f3f3f3f;int mp[N][N],vis[N],dis[N];int n,m,a,b,t,f,e;void init(){ for(int i=0;i<N;i++) for(int j=0;j<N;j++) if(i==j)//mp[i][j]=(i==j?0:inf); mp[i][j]=0; else mp[i][j]=inf;}void Dijkstra(int ss,int ee){ int p,minn; for(int i=0;i<n;i++) { dis[i]=mp[ss][i];//若:起点为0,终点为n-1,输出为dis[n-1],改dis[i]=mp[0][i]; vis[i]=0; } vis[ss]=1; for(int i=1;i<n;i++) { minn=inf; for(int j=0;j<n;j++) { if(!vis[j]&&minn>dis[j]) { minn=dis[j]; p=j; } } vis[p]=1; for(int j=0;j<n;j++) { if(!vis[j]&&dis[p]+mp[p][j]<dis[j]) dis[j]=dis[p]+mp[p][j]; } }}int main(){ while(scanf("%d%d",&n,&m)!=EOF) { init(); for(int i=0;i<m;i++) { scanf("%d%d%d",&a,&b,&t); if(mp[a][b]>t)//mp[a][b]=mp[b][a]=min(mp[a][b],t); mp[a][b]=mp[b][a]=t;//用min加<algorithm> } scanf("%d%d",&f,&e); Dijkstra(f,e); if(dis[e]==inf) cout<<-1<<endl; else cout<<dis[e]<<endl;//dis[end]放从开始到目标点的最短路 } return 0;}
0 0
- hdu 1874 通畅工程续(最短路模板)
- hdoj 1874 通畅工程续 (最短路)
- HDU 1874 通畅工程续(Dijkstra)
- HDU-1874 畅通工程续 最短路算法模板
- HDU 1874 畅通工程续 (最短路模板
- hdu 1874 畅通工程续 - 最短路
- HDU 1874 畅通工程续 最短路
- hdu 1874 畅通工程续(最短路)
- hdu 1874 畅通工程续 最短路
- HDU-1874-畅通工程续【最短路】
- 【HDU】-1874-畅通工程续(最短路)(dijkstra)
- HDOJ/HDU---1874 畅通工程续 最短路(dijkstra)
- hdu 1874 畅通工程续(最短路)
- hdu 1874 畅通工程续(最短路floyd)
- acm-最短路 畅通工程续 (hdu 1874)
- hdu 1874 畅通工程续(最短路)
- HDU 1874 畅通工程续(最短路)
- hdu 1874 畅通工程续(最短路)
- hbase日常运维管用命令,region管理
- 用非对称算法实现用户的安全登陆
- 数据库面试中常用的10个问题
- 产生死锁的四个必要条件
- XQuery3.0组合查询符合条件的内容.
- hdu 1874 通畅工程续(最短路模板)
- 数据结构——栈的顺序结构以及实现
- Linux命令-grep指令
- [Developer Android] Loading Large Bitmaps Efficiently
- 2016区域赛前训练总结
- Fat Jar打包插件方法
- Activity详解(二)——Activity的四种启动模式
- LeetCode(120) Triangle
- Linux内核源码分析-卸载文件系统-sys_umount