HDU 1874 畅通工程续【Floyd算法实现】

时间:2022-09-01 10:43:02

畅通工程续

Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 53806    Accepted Submission(s): 20092

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

现在,已知起点和终点,请你计算出要从起点到终点,最短需要行走多少距离。

 
Input
本题目包含多组数据,请处理到文件结束。
每组数据第一行包含两个正整数N和M(0<N<200,0<M<1000),分别代表现有城镇的数目和已修建的道路的数目。城镇分别以0~N-1编号。
接下来是M行道路信息。每一行有三个整数A,B,X(0<=A,B<N,A!=B,0<X<10000),表示城镇A和城镇B之间有一条长度为X的双向道路。
再接下一行有两个整数S,T(0<=S,T<N),分别代表起点和终点。
 
Output
对于每组数据,请在一行里输出最短需要行走的距离。如果不存在从S到T的路线,就输出-1.
 
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
 
Author
linle
 
Source
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1874
分析:floyd板子题,具体将会以后做详解,floyd的主函数只有4行,如下所示:
 for(int k=;k<n;k++)
for(int i=;i<n;i++)
for(int j=;j<n;j++)
mp[i][j]=min(mp[i][j],mp[i][k]+mp[k][j]);

下面给出AC代码:

 #include <bits/stdc++.h>
using namespace std;
const int maxn=;
int mp[maxn][maxn];
int m,n;
int main()
{
while(scanf("%d%d",&n,&m)!=EOF)
{
for(int i=;i<n;i++)
for(int j=;j<n;j++)
if(i==j)
mp[i][j]=;
else
mp[i][j]=1e9;
for(int i=;i<m;i++)//构建邻接矩阵求双向边最短路
{
int x,y,z;
scanf("%d%d%d",&x,&y,&z);
mp[x][y]=min(z,mp[x][y]);
mp[y][x]=min(z,mp[y][x]);
}
int s,t;
scanf("%d%d",&s,&t);
for(int k=;k<n;k++)
for(int i=;i<n;i++)
for(int j=;j<n;j++)
mp[i][j]=min(mp[i][j],mp[i][k]+mp[k][j]);//Floyd算法的实现
if(mp[s][t]==1e9)
printf("-1\n");
else
printf("%d\n",mp[s][t]);
}
return ;
}

HDU 1874 畅通工程续【Floyd算法实现】的更多相关文章

  1. ACM&colon; HDU 1874 畅通工程续-Dijkstra算法

    HDU 1874 畅通工程续 Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Desc ...

  2. HDU 1874 畅通工程续-- Dijkstra算法详解 单源点最短路问题

    参考 此题Dijkstra算法,一次AC.这个算法时间复杂度O(n2)附上该算法的演示图(来自*): 附上:  迪科斯彻算法分解(优酷) problem link -> HDU 1874 ...

  3. hdu 1874 畅通工程续 &lpar;floyd&rpar;

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

  4. hdu 1874 畅通工程续(求最短距离,dijkstra&comma;floyd)

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

  5. HDU 1874畅通工程续(迪杰斯特拉算法)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1874 畅通工程续 Time Limit: 3000/1000 MS (Java/Others)     ...

  6. hdu 1874 畅通工程续

    题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=1874 畅通工程续 Description 某省自从实行了很多年的畅通工程计划后,终于修建了很多路.不过 ...

  7. hdu 1874 畅通工程续(迪杰斯特拉优先队列,floyd,spfa)

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

  8. hdu 1874 畅通工程续 Dijkstra

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1874 题目分析:输入起点和终点,顶点的个数,已连通的边. 输出起点到终点的最短路径,若不存在,输出-1 ...

  9. HDU 1874 畅通工程续(最短路&sol;spfa Dijkstra 邻接矩阵&plus;邻接表)

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

随机推荐

  1. php学习函数

    1defined和define区别 2.dirname(__FILE__) 3.set_include_path 4.get_include_path 5.realpath() 6.require_p ...

  2. hdu4982 Goffi and Squary Partition (DFS解法)

    BestCoder Round #6 B http://acm.hdu.edu.cn/showproblem.php?pid=4982 Goffi and Squary Partition Time ...

  3. php递归函数--遍历

    多应用在 栏目多级.无限极调用 数据库数据如: id   catname   pid 1    关于我们     0 2     新闻          0 3    公司新闻     2 4     ...

  4. linux centos6&period;4 php连接sql server2008

    1.安装SQL Server驱动freetds yum search freetds yum install freetds php-mssql 或者下载编译安装   2.修改/etc/freetds ...

  5. Python学习之路——Day01

    Day01 一.编程和编程语言 编程语言是人与计算机之间交流沟通的介质 编程就是人实现通过让计算机实现动作的文件 二.计算机的组成 1.控制器:负责控制指挥计算机硬件运行 2.运算器:负责数学与逻辑运 ...

  6. python url监控 并邮件报警

    import timeimport requestsimport smtplibfrom email.mime.text import MIMETextimport datetime def Send ...

  7. 求1&excl;&plus;2&excl;&plus;3&excl;&plus;&period;&period;&period;&period;&period;&period;&plus;n&excl;的和 -----C&plus;&plus;-----

    #include<iostream> using namespace std; int function(int x) { ; ;i<=x;i++) sum=sum*i; retur ...

  8. 20155228 2016-2017-2 《Java程序设计》第4周学习总结

    20155228 2016-2017-2 <Java程序设计>第4周学习总结 教材学习内容总结 继承与多态 继承:在Java中,子类只能继承一个父类,关键字为extends,子类和父类之间 ...

  9. mac电脑复制粘贴使用command&plus;c command&plus;v

    mac电脑复制粘贴使用command+c command+v系统偏好设置--键盘--修饰键(右下角),将ctrl键和command键的功能对换一下即可用ctrl+c ctrl+v复制粘贴缺点:所有的c ...

  10. 质因子分解(Pollard&lowbar;Rho法)

    LL Pollard_Rho(LL n, LL c) { LL x, y, d; LL i = , k = ; x = y = rand() % n; do { i++; d = gcd(n + y ...