http://acm.hdu.edu.cn/showproblem.php?pid=1874

 //标准最短路模板
//需要注意的是两点间可能有多组
//需要取最短的
#include<iostream>
#include<stdio.h>
#include<math.h>
#include<string.h>
#include<stdlib.h>
#include<limits.h>
using namespace std;
const int N=;
int a[N][N];
int use[N];
int d[N];
int n,m;
void dijkstra(int u)//u起点
{
memset(use,,sizeof(use));
for(int i=;i<n;i++)
d[i]=a[u][i];//初始化
use[u]=;//标记使用
d[u]=;//u u距离为0
for(int i=;i<n;i++)
{
int min=INT_MAX;
int v=-;
for(int w=;w<n;w++)//找最短的路
{
if(!use[w] && d[w]<min)
{
min=d[w];
v=w;
}
}
if(v!=-)//没有路径则不更新
{
use[v]=;
for(int w=;w<n;w++)
{
if(!use[w] && (a[v][w]<INT_MAX))//做路径判断
{
if(d[w] > min+a[v][w])
{
d[w]=min+a[v][w];
}
}
}
}
}
}
int main()
{
//freopen("in.txt","r",stdin);
while(~scanf("%d%d",&n,&m)&&n&&m)
{
memset(a,,sizeof(a));
int x,y,c;
for(int i=;i<n;i++)
{
for(int j=;j<n;j++)
a[i][j]=INT_MAX;
}
for(int i=;i<m;i++)
{
scanf("%d%d%d",&x,&y,&c);
if(c<a[x][y])//注意判断多组情况
a[x][y]=a[y][x]=c;
}
int start,end;
scanf("%d%d",&start,&end);
dijkstra(start);
if(d[end]==INT_MAX)
{
printf("-1\n");
}
else
printf("%d\n",d[end]);
}
return ;
}

hdu1874 畅通工程续的更多相关文章

  1. HDU-1874 畅通工程续 (最短路径启蒙题)

    hdu 1874比较基础,拿来练各种刚学会的算法比较好,可以避免好多陷阱,典型的最短路模板题 畅通工程续 Time Limit: 3000/1000 MS (Java/Others)    Memor ...

  2. Hdu1874 畅通工程续 2017-04-12 18:37 48人阅读 评论(0) 收藏

    畅通工程续 Time Limit : 3000/1000ms (Java/Other)   Memory Limit : 32768/32768K (Java/Other) Total Submiss ...

  3. hdu1874畅通工程续(floyd)

    畅通工程续 Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submi ...

  4. hdu1874畅通工程续 (dijkstra)

    Problem Description 某省自从实行了很多年的畅通工程计划后,终于修建了很多路.不过路多了也不好,每次要从一个城镇到另一个城镇时,都有许多种道路方案可以选择,而某些方案要比另一些方案行 ...

  5. HDU1874畅通工程续(floyd||dijkstra)

    看了看floyd和dijkstra,然后就找了两个练习来捉 #include<iostream> #include<stdio.h> #include<string.h& ...

  6. hdu-1874 畅通工程续---模板题

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1874 题目大意: 求起点到终点的最短距离 解题思路: 注意重边,其他的就是模板 #include&l ...

  7. 畅通工程续--hdu1874

    畅通工程续 Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submi ...

  8. 畅通工程续——E

    E. 畅通工程续 某省自从实行了很多年的畅通工程计划后,终于修建了很多路.不过路多了也不好,每次要从一个城镇到另一个城镇时,都有许多种道路方案可以选择,而某些方案要比另一些方案行走的距离要短很多.这让 ...

  9. HDU 1874 畅通工程续(最短路/spfa Dijkstra 邻接矩阵+邻接表)

    题目链接: 传送门 畅通工程续 Time Limit: 1000MS     Memory Limit: 65536K Description 某省自从实行了很多年的畅通工程计划后,终于修建了很多路. ...

随机推荐

  1. 火星坐标系 (GCJ-02) 与百度坐标系 (BD-09) 的转换算法

    $x_pi = 3.14159265358979324 * 3000.0 / 180.0; //火星坐标系 (GCJ-02)转百度坐标系 (BD-09)算法 function bd_encrypt($ ...

  2. Raphael画圆弧

    paper.path([pathString]) A  椭圆 (rx ry x-axis-rotation larg-arc sweep-flag x y) 参数 rx 椭圆的横轴 ry 椭圆的纵轴 ...

  3. [大牛翻译系列]Hadoop(22)附录D.2 复制连接框架

    附录D.2 复制连接框架 复制连接是map端连接,得名于它的具体实现:连接中最小的数据集将会被复制到所有的map主机节点.复制连接的实现非常直接明了.更具体的内容可以参考Chunk Lam的<H ...

  4. php 图形验证码的3种方法

    生成图形验证码需要使用php GD库来生成,如果你没开户GD库我们需要在php.ini文件找到extension=php_gd2.dll 去掉前面的;就行了,然后重启apache 或iis环境即可 检 ...

  5. 注意:php5.4删除了session_unregister函数

    在php5.4版本中,应经删除了session_unregister该函数.朋友们注意一下 前几天安装了dedecms系统,当在后台安全退出的时候,后台出现空白,先前只分析其他功能去了,也没太注意安全 ...

  6. 反编译APK终结教程

    现在来教大家如何由网上下载的Android应用反编译为源码.如果你感兴趣,就来看一看吧.前提是你的电脑得已经配置好了java环境,如果没有配置好的话,下面我会附带一提,如果你还是不懂的话,那就上网搜一 ...

  7. Oracle 表的连接方式(2)-----HASH JOIN的基本机制3

    HASH JOIN的模式 hash join有三种工作模式,分别是optimal模式,onepass模式和multipass模式,分别在v$sysstat里面有对应的统计信息: SQL> sel ...

  8. PAT乙级真题1016.部分A+B(15)(2016-4-28)

    原题: 时间限制 100 ms 内存限制 65536 kB 代码长度限制 8000 B 正整数A的“DA(为1位整数)部分”定义为由A中所有DA组成的新整数PA.例如:给定A = 3862767,DA ...

  9. oracle中的记录类型

    单词RECORD有“记录”的意思,因此RECORD也称为“记录类型”,使用该类型的变量可以存储由多个列值组成的一行数据. 在声明记录类型变量之前,首先需要定义记录类型,然后才可以声明记录类型的变量. ...

  10. 6、WPF中的特殊字符与空白

    特殊字符: 小于号 <  字符实体采用&lt表示 大于号 >  字符实体采用&gt表示 &符号      字符实体采用&amp表示 引号"&quo ...