就不写题目链接了

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;
for(u=;u<=N;u++)
{
lowcost[u]=INF;
vis[u]=;
}
lowcost[]=;
int Min=INF; while()
{
int p=-;
for(u=;u<=N;u++)
{
if(!vis[u]&&(p==-||lowcost[u]<lowcost[p]))
p=u;
}
if(p==-) break;
vis[p]=;
for(u=;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)
{
for(i=;i<=N;i++)
{
for(j=;j<=N;j++)
{
if(j==i)
cost[i][j]=;
else
cost[i][j]=cost[j][i]=INF;
}
}
for(i=;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]);
}
}
Sample Input
3 3   点,边数
0 1 1     边
0 2 3
1 2 1
 
0 2   起点,终点
3 1
0 1 1
1 2
 
Sample Output
2
1
 #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;
for(u=;u<N;u++)
{
vis[u]=;
lowcost[u]=INF;
}
lowcost[s]=;
while()
{
p=-;
for(u=;u<N;u++)
if(!vis[u]&&(p==-||lowcost[u]<lowcost[p]))
p=u;
if(p==-) break;
vis[p]=;
for(u=;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))
{ for(i=;i<N;i++)
for(j=;j<N;j++)
if(i==j) cost[i][j]=cost[j][i]=;
else cost[i][j]=cost[j][i]=INF; for(i=;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模板题)的更多相关文章

  1. HDU-2544 最短路 Dijkstra模板题

    题目链接:https://vjudge.net/problem/HDU-2544 题意: 题目要求找到节点1到节点n之间的一条最短路 分析: Dijkstra模板题 单源最短路径,可以用dijkstr ...

  2. HDU 2544最短路dijkstra模板题

    最短路 Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submis ...

  3. HDU 2544 最短路 【Dijkstra模板题】

    传送门:http://acm.hdu.edu.cn/showproblem.php?pid=2544 思路:最短路的模板题 Dijkstra 算法是一种类似于贪心的算法,步骤如下: 1.当到一个点时, ...

  4. HDU 2544 最短路(模板题——Floyd算法)

    题目: 在每年的校赛里,所有进入决赛的同学都会获得一件很漂亮的t-shirt.但是每当我们的工作人员把上百件的衣服从商店运回到赛场的时候,却是非常累的!所以现在他们想要寻找最短的从商店到赛场的路线,你 ...

  5. 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 ...

  6. 单源最短路——Dijkstra模板

    算法思想: 类似最小生成树的贪心算法,从起点 v0 每次新拓展一个距离最小的点,再以这个点为中间点,更新起点到其他点的距离. 算法实现: 需要定义两个一维数组:①vis[ i ] 表示是否从源点到顶点 ...

  7. POJ 2387 Til the Cows Come Home (dijkstra模板题)

    Description Bessie is out in the field and wants to get back to the barn to get as much sleep as pos ...

  8. POJ 1502:MPI Maelstrom Dijkstra模板题

    MPI Maelstrom Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 6499   Accepted: 4036 Des ...

  9. 图论--最短路-- Dijkstra模板(目前见到的最好用的)

    之前的我那个板子,老是卡内存,不知道为什么,我看别人过的那个题都是结构体,我就开始对自己板子做了修改,然后他奶奶的就过了,而且速度也提高了,内存也小了.(自从用了这个板子,隔壁小孩馋哭了)也不知道为啥 ...

随机推荐

  1. android中handler使用应该注意的问题(解决由handler引起的OOM内存泄漏)

    最近,在项目过程中频繁的使用handler处理一些ui线程上的操作,以及使用handler的postdealy.然而使用过后却不对handler进行处理,进而产生了内存溢出现象,通过google,发现 ...

  2. [TYVJ] P1017 冗余关系

    冗余关系 背景 Background 太原成成中学第3次模拟赛 第4题   描述 Description Mrs.Chen是一个很认真很称职的语文老师 ......所以,当她看到学生作文里的人物关系描 ...

  3. PostgreSQL与MySQL比较(转)

    Mysql 使用太广泛了,以至于我不得不将一些应用从mysql 迁移到postgresql, 很多开源软件都是以Mysql 作为数据库标准,并且以Mysql 作为抽象基础的,但是具体使用过程中,发现M ...

  4. logstash date插件介绍

    时间处理(Date) 之前章节已经提过, filters/date 插件可以用来转换你的日志记录中的时间字符串,变成 LogStash::Timestamp 对象,然后转存到 @timestamp 字 ...

  5. 常用监控SQL

    1.---监控等待事件 select SESSION_ID,NAME,P1,P2,P3,WAIT_TIME,CURRENT_OBJ#,CURRENT_FILE#,CURRENT_BLOCK#     ...

  6. Struts2源代码解读之Action调用

    对于Struts2源代码的分析已经有些时日了,虽然网上有很多解读代码,不过自己还是写一个放上来,供大家参考一下. 解读过程: 直接在action类中打断点(包括构造函数和待执行方法)进行debug调试 ...

  7. python 得到一个元素的所有下标(网友提供:http://www.oschina.net/code/snippet_212212_38917)

    def all_index(l,o): def find_index(l,o,start=0): try: index=l.index(o,start) except: index=-1 return ...

  8. pyQt事件处理

    Qt事件处理01 Qt处理事件的第二种方式:"重新实现QObject::event()函数",通过重新实现event()函数,可以在事件到达特定的事件处理器之前截获并处理他们.这种 ...

  9. 通过winForm控制webForm的上传控件file的值

    文件上传是日常开发中经常遇到的,文件上传用的最多的当然是上传控件file了,一个form表单,其中有一点就是form表单的enctype属性设置为multipart/form-data,呵呵,这个在所 ...

  10. SQL参数化

    本文来自:caodonglin 一.SQL参数化为什么能防注入? 因为执行计划被重用了,所以可以防SQL注入. 下面有两段SQL     正常SQL: 1 select COUNT(1) from C ...