hdu 2544 最短路
输入保证至少存在1条商店到赛场的路线。
1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<cmath> 5 #include<algorithm> 6 #include<map> 7 #include<set> 8 #include<vector> 9 using namespace std; 10 #define ll long long 11 #define dd cout<<endl 12 const int inf=99999999; 13 const int mod=1e9+7; 14 const int maxn=505; 15 const int maxm=1e4+7; 16 int n,m; 17 int x,y,z; 18 int e[maxn][maxn]; 19 int book[maxn]={0}; 20 int minn=inf; 21 void init() 22 { 23 for(int i=0;i<maxn;i++) 24 for(int j=0;j<maxn;j++) 25 i==j?e[i][j]=0:e[i][j]=inf; 26 } 27 void dfs(int cur,int dis) 28 { 29 if(dis>minn) 30 return ; 31 if(cur==n) 32 { 33 if(dis<minn) 34 minn=dis; 35 return ; 36 } 37 for(int i=1;i<=n;i++) 38 { 39 if(book[i]==0&&e[cur][i]!=inf) 40 { 41 book[i]=1; 42 dfs(i,dis+e[cur][i]); 43 book[i]=0; 44 } 45 } 46 return ; 47 } 48 int main() 49 { 50 while(cin>>n>>m) 51 { 52 if(!n&&!m) 53 return 0; 54 init(); 55 memset(book,0,sizeof(book)); 56 for(int i=0;i<m;i++) 57 { 58 scanf("%d%d%d",&x,&y,&z); 59 e[x][y]=z; 60 e[y][x]=z; 61 } 62 book[1]=1; 63 minn=inf; 64 dfs(1,0); 65 printf("%d\n",minn); 66 } 67 return 0; 68 }
View Code
Floyd
1 #include<iostream> 2 #include<cstring> 3 #include<cmath> 4 #include<algorithm> 5 #include<cstdio> 6 #include<map> 7 #include<set> 8 #include<vector> 9 using namespace std; 10 #define ll long long 11 const int inf=99999999; 12 const int maxn=10002; 13 int n,m; 14 int x,y,z; 15 int e[maxn][maxn]; 16 int dis[maxn]; 17 int book[maxn]; 18 void init() 19 { 20 for(int i=1;i<=n;i++) 21 for(int j=1;j<=n;j++) 22 i==j?e[i][j]=0:e[i][j]=inf; 23 } 24 int main() 25 { 26 while(scanf("%d%d",&n,&m)!=EOF) 27 { 28 if(!n&&!m) 29 return 0; 30 init(); 31 for(int i=1;i<=m;i++) 32 { 33 scanf("%d%d%d",&x,&y,&z); 34 e[x][y]=z; 35 e[y][x]=z; 36 } 37 for(int i=1;i<=n;i++) 38 dis[i]=e[1][i]; 39 for(int k=1;k<=n;k++) 40 { 41 for(int i=1;i<=n;i++) 42 { 43 for(int j=1;j<=n;j++) 44 { 45 if(e[i][j]>e[i][k]+e[k][j]) 46 e[i][j]=e[i][k]+e[k][j]; 47 } 48 } 49 } 50 printf("%d\n",e[1][n]); 51 } 52 return 0; 53 }
View Code
Dijkstra
1 #include<iostream> 2 #include<cstring> 3 #include<cmath> 4 #include<algorithm> 5 #include<cstdio> 6 #include<map> 7 #include<set> 8 #include<vector> 9 using namespace std; 10 #define ll long long 11 const int inf=99999999; 12 const int maxn=10002; 13 int n,m; 14 int x,y,z; 15 int e[maxn][maxn]; 16 int dis[maxn]; 17 int book[maxn]; 18 void init() 19 { 20 for(int i=1;i<=n;i++) 21 for(int j=1;j<=n;j++) 22 i==j?e[i][j]=0:e[i][j]=inf; 23 } 24 int main() 25 { 26 while(scanf("%d%d",&n,&m)!=EOF) 27 { 28 if(!n&&!m) 29 return 0; 30 init(); 31 for(int i=1;i<=m;i++) 32 { 33 scanf("%d%d%d",&x,&y,&z); 34 e[x][y]=z; 35 e[y][x]=z; 36 } 37 for(int i=1;i<=n;i++) 38 dis[i]=e[1][i]; 39 book[1]=1; 40 for(int k=1;k<=n-1;k++) 41 { 42 int minn=inf,temp; 43 44 for(int i=1;i<=n;i++) 45 { 46 if(book[i]==0&&dis[i]<minn) 47 minn=dis[temp=i]; 48 } 49 book[temp]=1; 50 for(int j=1;j<=n;j++) 51 { 52 if(book[j]==0&&e[temp][j]<inf) 53 { 54 if(dis[j]>dis[temp]+e[temp][j]) 55 dis[j]=dis[temp]+e[temp][j]; 56 } 57 } 58 } 59 printf("%d\n",dis[n]); 60 memset(book,0,sizeof(book)); 61 } 62 return 0; 63 }
View Code
Bellman-ford
1 #include<iostream> 2 #include<cstring> 3 #include<cmath> 4 #include<algorithm> 5 #include<cstdio> 6 #include<map> 7 #include<set> 8 #include<vector> 9 using namespace std; 10 #define ll long long 11 const int inf=99999999; 12 const int maxn=10002; 13 int n,m; 14 int x,y,z; 15 int e[maxn][maxn]; 16 int dis[maxn]; 17 int u[maxn]; 18 int v[maxn]; 19 int w[maxn]; 20 int book[maxn]; 21 void init() 22 { 23 for(int i=1;i<=n;i++) 24 for(int j=1;j<=n;j++) 25 i==j?e[i][j]=0:e[i][j]=inf; 26 } 27 int main() 28 { 29 while(scanf("%d%d",&n,&m)!=EOF) 30 { 31 if(!n&&!m) 32 return 0; 33 init(); 34 for(int i=1;i<=m;i++) 35 { 36 scanf("%d%d%d",&x,&y,&z); 37 e[x][y]=z; 38 e[y][x]=z; 39 u[i]=x; 40 v[i]=y; 41 w[i]=z; 42 } 43 for(int i=m+1;i<=2*m;i++) 44 { 45 u[i]=v[i-m]; 46 v[i]=u[i-m]; 47 w[i]=w[i-m]; 48 } 49 for(int i=1;i<=n;i++) 50 i==1?dis[i]=0:dis[i]=inf; 51 for(int k=1;k<=n-1;k++) 52 { 53 for(int i=1;i<=2*m;i++) 54 { 55 if(dis[v[i]]>dis[u[i]]+w[i]) 56 dis[v[i]]=dis[u[i]]+w[i]; 57 } 58 } 59 printf("%d\n",dis[n]); 60 } 61 return 0; 62 }
View Code
转载于:https://www.cnblogs.com/xwl3109377858/p/10663018.html
hdu 2544 最短路相关推荐
- hdu 2544 最短路 (dijkstra)
http://acm.hdu.edu.cn/showproblem.php?pid=2544 最简单的最短路了吧 改天试试优化版本的 #include<stdio.h> #include& ...
- HDU 2544 最短路(各种最短路算法的实现)
链接: http://acm.hdu.edu.cn/showproblem.php?pid=2544 题目: Problem Description 在每年的校赛里,所有进入决赛的同学都会获得一件很漂 ...
- hdu 2544最短路(Dijkstra)
最短路 Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/O ...
- hdu 2544最短路 Floyd算法
最短路 Time Limit : 5000/1000ms (Java/Other) Memory Limit : 32768/32768K (Java/Other) Problem Descrip ...
- hdu 2544 最短路 Dijkstra算法
最短路 Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Problem Desc ...
- HDU 2544最短路dijkstra模板题
最短路 Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submis ...
- HDU 2544 最短路 最短路入门
点击打开链接 最短路 Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total ...
- HDU 2544 最短路(最短路入门)
链接:click here 题意: 在每年的校赛里,所有进入决赛的同学都会获得一件很漂亮的t-shirt.但是每当我们的工作人员把上百件的衣服从商店运回到赛场的时候,却是非常累的!所以现在他们想要寻找 ...
- 知识点四 图论:dijkstra (HDU 2544 +HDU 1874)
dijkstra(狄克斯特拉)知识点 1.可以用于解决最短路问题 2.dijkstra算法在数据量比较小的情况下可以直接开邻接矩阵. 3.不能处理含有负权环的图 对dijkstra算法的理解 dijk ...
最新文章
- 初次使用VS附加到进程功能
- *ctf 逆向math题解
- containers文件夹可以删除吗_电脑进行C盘清理,appdata文件夹可以删除吗?
- oracle 如何查看日志?
- Sigmoid函数与Softmax函数的区别与联系
- 断供后,英特尔再宣布暂停在俄罗斯业务,立即生效
- 问题三十七:C++怎么解一元四次方程?(2)——怎么解一元三次方程
- 30多套API接口,还怕满足不了你的量化交易需求?
- 从官网通过execl制作省市区行政代码
- 使用OpenOffice实现Word转Html
- 数理逻辑蕴含_(1)逻辑学(形式逻辑/数理逻辑): 基本概念
- Oracle 10.2 流复制问题(二)—— C001: large txn detected
- matplotlib-06 axhline绘制水平/竖直参考线
- 支付宝支付对接DEMO
- PVE(Proxmox VE) 显卡直通
- ns3—— sixth.cc 大概理解
- Python中比较好用的PDF模块——发票金额提取
- VC++6.0安装(解决win10,win11无法打开)
- 独家下载,阿里云云原生携 10+ 技术专家带来《云原生与云未来的新可能》
- 磁盘损坏怎么恢复文件?看完就懂了
热门文章
- linux6个服务级别,RHEL 6 和 RHEL 7 的一些有关运行级别,服务管理,服务启动等方面的区别介绍...
- mysql 引擎 校对,MySQL 字符集和校对
- html页面通过特殊链接:打电话,发短信,发邮件详细教程
- CString转char的方法总结
- oracle存储过程写法(一)
- [react] 使用webpack打包React项目,怎么减小生成的js大小?
- React开发(230):ant design table固定表头
- [html] HTML5中新添加的表单属性有哪些?
- [css] 会引起Reflow和Repaint的操作有哪些?
- [js] 如何判断两个对象相等?