hdoj-2066 一个人的旅行【最短路径--dijkstra&&spfa&&floyd】
来源:互联网 发布:js中get post 区别 编辑:程序博客网 时间:2024/06/04 18:34
题目:http://acm.hdu.edu.cn/showproblem.php?pid=2066
解题思路:
把城市a,b看成起点和终点,time看成两者之间的距离 从而转化成最短路径问题
该题中有多个起点终点 求出每个起点到每个终点的最短路径 取在这些最短路径中的最小值
注意:本题没有给出城镇的个数n 但floyd中刻画第几个节点时会用到 所以需要自己去找
floyd;
#include<cstdio>#include<cstring>#include<algorithm>#define INF 0x3f3f3f3fusing namespace std;int n,t,s,d,path[1010][1010];//path[]两城镇之间的距离void getmap(){ int a,b,time; n=0; memset(path,INF,sizeof(path));// 初始化 一开始先默认两城市无道路连通 距离为 无穷大 while(t--) { scanf("%d%d%d",&a,&b,&time); <span style="color:#ff0000;"> if(n<max(a,b))//找城市个数 n=max(a,b</span>); if(path[a][b]>time) path[a][b]=path[b][a]=time; } }void floyd(){ int i,j,k; for(k=1;k<=n;k++) for(i=1;i<=n;i++) <span style="color:#ff0000;"> if(path[i][k]!=INF</span>)//or if(path[i][j]==INF)continue;进行下一组数据 优化 否则TLE(超时) { for(j=1;j<=n;j++) { if(path[i][j]>path[i][k]+path[k][j]) path[i][j]=path[i][k]+path[k][j]; } }}int main(){ int start[1010],end[1010],i,j; while(~scanf("%d%d%d",&t,&s,&d)) { getmap(); for(i=0;i<s;i++) scanf("%d",&start[i]); for(i=0;i<d;i++) scanf("%d",&end[i]); floyd(); <span style="color:#ff0000;"> int min=INF; for(i=0;i<s;i++) { for(j=0;j<d;j++) { if(min>path[start[i]][end[j]]) min=path[start[i]][end[j]]; } }</span> printf("%d\n",min); } return 0;}
0 0
- hdoj-2066 一个人的旅行【最短路径--dijkstra&&spfa&&floyd】
- 2066 一个人的旅行【floyd &&dijkstra&& spfa】
- HDOJ 2066 一个人的旅行 (最短路 Dijkstra && SPFA)
- HDOJ 题目2066一个人的旅行(最短路径,Floyd)
- 【最短路径-Floyd】hdu 2066 一个人的旅行
- hdu 2066 一个人的旅行 最短路径floyd算法
- 【最短路径dijkstra算法】HDU 2066---一个人的旅行
- hdu 2066 一个人的旅行(最短路径 Dijkstra算法)
- hdu 2066 一个人的旅行 最短路径dijkstra算法
- hdoj-2544 最短路【最短路径--dijkstra&&spfa&&floyd】
- HDU2066---一个人的旅行(Dijkstra&&floyd&&spfa)
- HDU 2066:一个人的旅行【Dijkstra & SPFA & Floyd】
- HDOJ 2066 一个人的旅行 (dijkstra 和 Floyd)
- 最短路径:Dijkstra,Bellman,SPFA,Floyd算法的实现
- HDU 2066 一个人的旅行【最短路 dijkstra & floyed & SPFA 】
- HDU 2066 一个人的旅行 (最短路----floyd && dijkstra)
- HDOJ 2544 最短路(最短路径 dijkstra算法,SPFA邻接表实现,floyd算法)
- HDOJ 2066 一个人的旅行(最短路之SPFA)
- JAVA中关于servlet的工作原理
- hibernate简单实例
- 输出有序数组的连续序列范围
- linux下50个常用命令
- [c] sdnuoj1147Pythagoras's Revenge
- hdoj-2066 一个人的旅行【最短路径--dijkstra&&spfa&&floyd】
- C# LinkedList<T> 泛型类的实现
- FZU 2135 数字游戏
- 多线程 - 07.GCD函数和队列组合示例
- The hardest problem
- 【C++】复数类
- 软件架构的道德责任
- 动画
- 常用传感器协议6:中立格林VOC传感器