最短路Dijkstra和Flyod
lt;=10000),N表示成都的大街上有几个路口,标号为1的路口是商店所在地,标号为N的路口是赛场所在地,M则表示在成都有几条路。N=M=0表
示输入结束。接下来M行,每行包括3个整数A,B,C(1<=A,B<=N,1<=C<=1000),表示在路口A与路口B之间
有一条路,我们的工作人员需要C分钟的时间走过这条路。
输入保证至少存在1条商店到赛场的路线。
1 2 3
3 3
1 2 5
2 3 5
3 1 2
0 0
2
方法(1)Dijkstra
- #include<iostream>
- #include<cstdio>
- #include<cstring>
- using namespace std;
- #define INF 0x3f3f3f3;
- int map[110][110],dis[110],visited[110];
- void Dijkstra(int n,int x)
- {
- int i,p,j,min;
- for (i=1;i<=n;i++)
- {
- dis[i]=map[1][i];
- visited[i]=0;
- }
- visited[x]=1;
- for (i=1;i<=n;i++)
- {
- min=INF;
- for (j=1;j<=n;j++)
- {
- if(!visited[j] && dis[j]<min)
- {
- p=j;
- min=dis[j];
- }
- }
- visited[p]=1;
- for (j=1;j<=n;j++)
- {
- if(!visited[j] && dis[p]+map[p][j]<dis[j])
- {
- dis[j]=dis[p]+map[p][j];
- }
- }
- }
- }
- int main()
- {
- int n,m,i,j,a,b,t;
- while(scanf("%d%d",&n,&m)!=EOF,n+m)
- {
- for (i=1;i<=n;i++)
- {
- for (j=1;j<=n;j++)
- {
- map[i][j]=INF;
- }
- }
- for(i=1;i<=m;i++)
- {
- scanf("%d%d%d",&a,&b,&t);
- map[a][b]=map[b][a]=t;
- }
- Dijkstra(n,1);
- printf("%d\n",dis[n]);
- }
- return 0;
- }
方法(2)Flyod
- #include <iostream>
- #include <cstdio>
- using namespace std;
- const int INF=0x3f3f3f3f;
- int dis[110][110];
- int main()
- {
- int i,j,k,n,m,p,q,s;
- while(scanf("%d%d",&n,&m)!=EOF,n+m)
- {
- for (i=1;i<=n;i++)
- {
- for(j=1;j<=n;j++)
- {
- dis[i][j]=INF;
- }
- }
- for (i=0;i<m;i++)
- {
- scanf("%d%d%d",&p,&q,&s);
- dis[p][q]=dis[q][p]=s;
- }
- for (k=1;k<=n;k++)
- {
- for (i=1;i<=n;i++)
- {
- for (j=1;j<=n;j++)
- {
- if (dis[i][j]>dis[i][k]+dis[k][j])
- {
- dis[i][j]=dis[i][k]+dis[k][j];
- }
- }
- }
- }
- printf("%d\n",dis[1][n]);
- }
- return 0;
- }
求最短路最基本的2个算法,持续学习中。
最短路Dijkstra和Flyod的更多相关文章
- hdu 2544 最短路 Dijkstra
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2544 题目分析:比较简单的最短路算法应用.题目告知起点与终点的位置,以及各路口之间路径到达所需的时间, ...
- 算法学习笔记(三) 最短路 Dijkstra 和 Floyd 算法
图论中一个经典问题就是求最短路.最为基础和最为经典的算法莫过于 Dijkstra 和 Floyd 算法,一个是贪心算法,一个是动态规划.这也是算法中的两大经典代表.用一个简单图在纸上一步一步演算,也是 ...
- 单源最短路dijkstra算法&&优化史
一下午都在学最短路dijkstra算法,总算是优化到了我能达到的水平的最快水准,然后列举一下我的优化历史,顺便总结总结 最朴素算法: 邻接矩阵存边+贪心||dp思想,几乎纯暴力,luoguTLE+ML ...
- HUD.2544 最短路 (Dijkstra)
HUD.2544 最短路 (Dijkstra) 题意分析 1表示起点,n表示起点(或者颠倒过来也可以) 建立无向图 从n或者1跑dij即可. 代码总览 #include <bits/stdc++ ...
- 训练指南 UVALive - 4080(最短路Dijkstra + 边修改 + 最短路树)
layout: post title: 训练指南 UVALive - 4080(最短路Dijkstra + 边修改 + 最短路树) author: "luowentaoaa" ca ...
- 训练指南 UVA - 10917(最短路Dijkstra + 基础DP)
layout: post title: 训练指南 UVA - 10917(最短路Dijkstra + 基础DP) author: "luowentaoaa" catalog: tr ...
- 训练指南 UVA - 11374(最短路Dijkstra + 记录路径 + 模板)
layout: post title: 训练指南 UVA - 11374(最短路Dijkstra + 记录路径 + 模板) author: "luowentaoaa" catalo ...
- 最短路Dijkstra算法的一些扩展问题
最短路Dijkstra算法的一些扩展问题 很早以前写过关于A*求k短路的文章,那时候还不明白为什么还可以把所有点重复的放入堆中,只知道那样求出来的就是对的.知其然不知其所以然是件容易引发伤痛的 ...
- 华夏60 战斗机(最短路dijkstra)
华夏60 战斗机(最短路dijkstra) 华夏60 超音速战斗机是当今世界上机动性能最先进的战斗机.战斗过程中的一个关键问题是如何在最短的时间内使飞机从当前的飞行高度和速度爬升/俯冲到指定的高度并达 ...
随机推荐
- Android 手势锁的实现 为了让自己的应用程序的安全,现在
转载请注明出处:http://blog.csdn.net/lmj623565791/article/details/36236113 今天偶遇以github上gesturelock关于手势锁的一个样例 ...
- Objective-C中math.h数学计算公式介绍
1. 三角函数 double sin (double); 正弦 double cos (double);余弦 double tan (double);正切 2 .反三角函数 double a ...
- raphael入门到精通---入门篇之总览
什么是Raphael raphael.js是一小巧的javascript库,它可以在web上画矢量图简化你的工作,如果你想创建你指定的图表,图形区域或者可移动的组件,那么就使用raphael吧 话不多 ...
- 关于js封装框架类库之事件模块
在触发DOM上的某个事件时,会产生一个事件对象event.这个对象中包含着所有与事件有关的信息.包括导致事件的元素,事件的类型以及其他与特定事件相关的信息. 例如: 鼠标操作点击事件时,事件对象中会获 ...
- URAL 1081 Binary Lexicographic Sequence
第13个位置第5个Bit :13>num[4] =>1 第四个bit 13-num[4]=5 :5<num[3] =>0 ,3-1 第三个Bit 5>num[2](3) ...
- 一些ASP.NET的小知识点
DataFormatString="{0:格式字符串}" 我们知道在DataFormatString 中的 {0}表示数据本身,而在冒号后面的格式字符串代表所们希望数据显示的格式; ...
- slf4j+log4j配置(Maven)
首先配置Maven依赖 <!-- http://mvnrepository.com/artifact/org.slf4j/slf4j-log4j12 --> <dependency& ...
- [LeetCode]题解(python):068-Text Justification
题目来源: https://leetcode.com/problems/text-justification/ 题意分析: 输入一个字符串数组和一个规定长度L.将这个字符串数组的元素尽可能放到长度的L ...
- IOS 特定于设备的开发:Info.plist属性列表的设置
应用程序的Info.plist属性列表使你能够在向iTunes提交应用程序时指定应用程序的要求.这些限制允许告诉iTunes应用程序需要哪些设备特性. 每个IOS单元都会提供一个独特的特性集.一些设备 ...
- KISSY对vm的抽取
vm <script type="text/javascript"> KISSY.use(['bops/js/forced-closure', 'common/js/t ...