最短路(Dijkstra模板题)
就不写题目链接了
Sample Input
5 5 点个数a,边个数b 1 2 20 点,点,权值 2 3 30 3 4 20 4 5 20 1 5 100 求出1到a的最短距离
Sample Output
90防止有重边
#include <iostream> #include <cstdio> using namespace std; #define Max 1000+10 #define INF 0x3f3f3f3f int cost[Max][Max]; int lowcost[Max]; bool vis[Max]; int N,T; void dijkstra(int s) { int i,u,v; ;u<=N;u++) { lowcost[u]=INF; vis[u]=; } lowcost[]=; int Min=INF; ) { ; ;u<=N;u++) { ||lowcost[u]<lowcost[p])) p=u; } ) break; vis[p]=; ;u<=N;u++) if(!vis[u]&&(lowcost[p]+cost[p][u])<lowcost[u]) lowcost[u]=lowcost[p]+cost[p][u]; } } int main() { int i,j; int a,b,w; freopen("in.txt","r",stdin); while(scanf("%d%d",&T,&N)!=EOF) { ;i<=N;i++) { ;j<=N;j++) { if(j==i) cost[i][j]=; else cost[i][j]=cost[j][i]=INF; } } ;i<T;i++) { scanf("%d%d%d",&a,&b,&w); if(w<cost[a][b]) { cost[a][b]=cost[b][a]=w; } } dijkstra(); printf("%d\n",lowcost[N]); } }
#include <iostream> #include <cstdio> using namespace std; #define Max 200+10 #define INF 0x3f3f3f3f int cost[Max][Max]; int lowcost[Max]; bool vis[Max]; int N,M; void dijkstra(int s) { int u,i,p; ;u<N;u++) { vis[u]=; lowcost[u]=INF; } lowcost[s]=; ) { p=-; ;u<N;u++) ||lowcost[u]<lowcost[p])) p=u; ) break; vis[p]=; ;u<N;u++) if(!vis[u]&&(lowcost[p]+cost[u][p])<lowcost[u]) lowcost[u]=lowcost[p]+cost[u][p]; } } int main() { int i,j; int a,b,w,s,e; freopen("in.txt","r",stdin); while(~scanf("%d%d",&N,&M)) { ;i<N;i++) ;j<N;j++) ; else cost[i][j]=cost[j][i]=INF; ;i<M;i++) { scanf("%d%d%d",&a,&b,&w); if(w<cost[a][b]) cost[a][b]=cost[b][a]=w; /*解决重边*/ } scanf("%d%d",&s,&e); dijkstra(s); if(lowcost[e]==INF) printf("-1\n"); else printf("%d\n",lowcost[e]); } }
最短路(Dijkstra模板题)的更多相关文章
- HDU 2544最短路dijkstra模板题
最短路 Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submis ...
- HDU 2544 最短路(模板题——Floyd算法)
题目: 在每年的校赛里,所有进入决赛的同学都会获得一件很漂亮的t-shirt.但是每当我们的工作人员把上百件的衣服从商店运回到赛场的时候,却是非常累的!所以现在他们想要寻找最短的从商店到赛场的路线,你 ...
- hdu 2544 hdu 1874 poj 2387 Dijkstra 模板题
hdu 2544 求点1到点n的最短路 无向图 Sample Input2 1 //结点数 边数1 2 3 //u v w3 31 2 52 3 53 1 20 0 Sample Output32 ...
- 单源最短路——Dijkstra模板
算法思想: 类似最小生成树的贪心算法,从起点 v0 每次新拓展一个距离最小的点,再以这个点为中间点,更新起点到其他点的距离. 算法实现: 需要定义两个一维数组:①vis[ i ] 表示是否从源点到顶点 ...
- POJ 2387 Til the Cows Come Home --最短路模板题
Dijkstra模板题,也可以用Floyd算法. 关于Dijkstra算法有两种写法,只有一点细节不同,思想是一样的. 写法1: #include <iostream> #include ...
- 基础最短路(模板 spfa)
Description 虽然草儿是个路痴(就是在杭电待了一年多,居然还会在校园里迷路的人,汗~),但是草儿仍然很喜欢旅行,因为在旅途中 会遇见很多人(白马王子,^0^),很多事,还能丰富自己的阅历,还 ...
- 基础最短路(模板 bellman_ford)
Description 在每年的校赛里,所有进入决赛的同学都会获得一件很漂亮的t-shirt.但是每当我们的工作人员把上百件的衣服从商店运回到赛场的时候,却是非常累的!所以现在他们想要寻找最短的从商店 ...
- poj1511/zoj2008 Invitation Cards(最短路模板题)
转载请注明出处: http://www.cnblogs.com/fraud/ ——by fraud Invitation Cards Time Limit: 5 Seconds ...
- HDU 2544 最短路(模板题)
求1到N的最短路径,模板题,以1为源点,用dijkstra算法(可以用优先级队列优化) #include <iostream> #include <algorithm> #in ...
随机推荐
- Java线程:创建与启动
Java线程:创建与启动 一.定义线程 1.扩展java.lang.Thread类. 此类中有个run()方法,应该注意其用法: public void run() 如果该线程是使用独立的 R ...
- codevs1958 刺激
难度等级:黄金 1958 刺激 题目描述 Description saffah的一个朋友S酷爱滑雪,并且追求刺激(exitement,由于刺激过度导致拼写都缺了个字母),喜欢忽高忽低的感觉.现在S拿到 ...
- 【C++】rand()函数,时间种子
srand((unsigned)time(NULL)); //以时间为随机种子,写在循环前才有效(几个循环无所谓) ;i<=size;i++) { ;j<=size;j++) { ==ra ...
- mouseover和mouseenter的区别
mouseover和mouseenter都是鼠标事件. mouseover事件,当鼠标穿过被选元素的时候,若此元素有子元素,子元素也会被触发此事件.即是使用mouseover事件,会多次触发此元素. ...
- SQL如何查询两个表的数据
在进行查询操作时,我们通常需要查询两个关联表的数据,我们可以使用where语句进行查询,如: select Emp.E_Id,Company.C_OraName from Emp,Company wh ...
- 通过ssh秘钥的方式可以连接上CE68交换机
结论:按照CE68交换机的用户手册中的指导,可以通过ssh 秘钥的方式连接上交换机. 1.先按照eNSP连接到网卡的方式,给CE68配置一个ip地址: 192.168.56.2 2.按照交换机的用户指 ...
- php+Mysql页面注册代码
页面设置代码:<!DOCTYPE html><html lang="en"><head> <meta charset="UTF- ...
- Hive入门教程
Hive 安装 相比起很多教程先介绍概念,我喜欢先动手装上,然后用例子来介绍概念.我们先来安装一下Hive 先确认是否已经安装了对应的yum源,如果没有照这个教程里面写的安装cdh的yum源http: ...
- C++学习-5
1.static_cast静态转换<>要转换的类型,不适用于指针转换 reinterpret_cast<char*>()指针类型的转换 涉及到const,必须用const_ca ...
- Vue-Router模式、钩子
转:https://www.cnblogs.com/heioray/p/7193841.html 模式 vue-router中的模式选项主要在router实例化的时候进行定义的,如下 const ro ...