hdu 1874(Dijkstra + Floyd)

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

畅通工程续

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


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
【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】
经典最短路,但是有坑。。。。。
第一:起点与终点可能会相同
第二:两条路之间可能会有不止一条道路
第三:起点给了,要注意Dijk赋初值

缺一则WA

Dijkstra:

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <iostream>
#include <algorithm>
#include <map>#define INF 1000000000
#define MAXX 210
int mp[MAXX][MAXX];
int visit[MAXX],d[MAXX];void Dijkstra(int st,int n)
{int i,j,y;memset(visit,0,sizeof(visit));for(int i=0;i<n;i++){d[i]=mp[st][i];}d[st]=0;for(int i=0;i<n;i++){int m=INF,x=1;for(y=0;y<n;y++){if(!visit[y] && d[y]<=m){m = d[x = y];}}visit[x]=1;for(y=0; y<n; y++){if(!visit[y] && d[y]>d[x]+mp[x][y]){d[y]=d[x]+mp[x][y];}}}
}int main()
{int n,m,i,j;while(scanf("%d%d",&n,&m)!=EOF){for(i=0; i<MAXX; i++)for(j=0; j<MAXX; j++)mp[i][j]=INF;int a,b,c,st,ed;for(i=0; i<m; i++){scanf("%d%d%d",&a,&b,&c);mp[a][b]=mp[a][b]>c?c:mp[a][b];mp[b][a]=mp[a][b];}scanf("%d%d",&st,&ed);if(st == ed){printf("0\n");continue;}Dijkstra(st,n);if(d[ed] == INF){printf("-1\n");}else{printf("%d\n",d[ed]);}}return 0;
}
View Code

 

Floyd:

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <iostream>
#include <algorithm>#define MAXX 210
#define INF 1000000000int d[MAXX][MAXX];void Floyd(int n)
{int i,j,k;for(k=0; k<n; k++)for(i=0; i<n; i++)for(j=0; j<n; j++)if(d[i][k] + d[k][j] < d[i][j])d[i][j] = d[i][k] + d[k][j];
}int main()
{int n,m,i,j;//freopen("in.txt","r",stdin);while(scanf("%d%d",&n,&m)!=EOF){for(i=0; i<MAXX; i++)for(j=0; j<MAXX; j++)d[i][j] = INF;int a,b,c;for(i=0; i<m; i++){scanf("%d%d%d",&a,&b,&c);d[a][b] = d[a][b] > c ? c : d[a][b];d[b][a] = d[a][b];}int st,ed;scanf("%d%d",&st,&ed);if(st == ed){printf("0\n");continue;}Floyd(n);if(d[st][ed] == INF)printf("-1\n");elseprintf("%d\n",d[st][ed]);}return 0;
}
View Code

 

 

 

 

转载于:https://www.cnblogs.com/ccccnzb/p/3890962.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/432402.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

php原生session,利用Memcached在php下实现session机制 替换PHP的原生session支持

方法文件session实现文件:memcachedsession.php实现原理(也是PHP内部session的实现原理)&#xff1a;1.先判断客户端有没有sessionid&#xff0c;a.没有就添加一个sessionid给客户端&#xff0c;通常是32位hash码&#xff0c;同时初始化一个数组做session容器b.如果客户端有ses…

Web 开发中很实用的10个效果【附源码下载】

在工作中&#xff0c;我们可能会用到各种交互效果。而这些效果在平常翻看文章的时候碰到很多&#xff0c;但是一时半会又想不起来在哪&#xff0c;所以养成知识整理的习惯是很有必要的。这篇文章给大家推荐10个在 Web 开发中很有用的效果&#xff0c;记得收藏&#xff01; 超炫…

深入分析MFC文档视图结构(项目实践)

文档视图结构&#xff08;Document/View Architecture&#xff09;是MFC的精髓&#xff0c;也是Observer模式的具体实现框架之一&#xff0c;Document/View Architecture通过将数据和其表示分开&#xff0c;提供了很好的数据层次和表现层次的解耦。然而&#xff0c;虽然我们使用…

蓝图中实现人物移动2

从Pawn继承一个蓝图类并编写下面代码&#xff0c;并添加摄像机组件 1. 实现前后移动2. 实现左右移动3. 实现鼠标移动方向4. 实现鼠标俯仰

php 提取前一百个字,如何在PHP中提取字符串的前100個字符?

I am looking for a way to pull the first 100 characters from a string variable to put in another variable for printing.我正在尋找一種方法&#xff0c;從字符串變量中提取前100個字符&#xff0c;並將其放入另一個變量中進行打印。Is there a function that can do th…

实现两个pawn的切换

在playercontroller里面编写下面代码并把两个pawn放置到场景中

zoj2008 最短路

题意&#xff1a;给你n个点的有向图&#xff0c;从1点到其他所有点又从其他点回到1点的最短路。 思路&#xff1a;可以求一次从1点出发的最短路&#xff0c;再反向建图&#xff0c;再求一次从1出发的最短路&#xff0c;把两次的结果加起来就是题目所求。由于边比较多&#xff0…

steam程序员php玩的游戏,Steam:又一款烧脑的编程游戏上线,宅男回家了也要开心加班!...

原标题&#xff1a;Steam&#xff1a;又一款烧脑的编程游戏上线&#xff0c;宅男回家了也要开心加班&#xff01;要是小伙伴们喜欢什么解谜、编程类游戏&#xff0c;相信Steam上的《程序员升职记》应该都是绿了的游戏&#xff0c;这款给宅男们设计智力游戏能让你享受到从底层到…

模式(一)javascript设计模式

模式有三种&#xff1a;Architectural Pattern、Design Pattern、Coding Pattern&#xff0c;即&#xff1a;框架模式、设计模式、编程模式。本文主要讲解javascript中的设计模式&#xff0c;好的设计模式能够提高代码的重用性&#xff0c;可读性&#xff0c;使代码更容易的维护…

matlab如何提高运算速速,如何提高以下程序的运算速度及有选择性的保存数据?...

多谢管理员math的关注。“空位随机游走过程”有英语我也不知道如何说。只知道“空位”叫做&#xff1a;vacancy我解解释一下整个过程。不过过程比较长一些&#xff01;为了说明问题&#xff0c;我就举个例子如&#xff1a;Fe-Mg二元合金&#xff0c;其中Mg占3%&#xff0c;空位…

GPS经纬度换算成XY坐标

/// <summary>///GPS经纬度换算成x,y坐标 /// </summary>/// <param name"l"> 精度 </param>/// <param name"B"> 纬度 </param>/// <param name"xc"> X坐标 </param>/// <param na…

Valid Sudoku

这道题是个细节实现题&#xff0c;只要把valid sudoku满足的三个条件判断一下即可。 valid sudoku需满足下列三个条件&#xff1a; 1&#xff09;每一行数字1~9有且只出现一次。2&#xff09;每一列数字1~9有且只出现一次。3&#xff09;对于每个3*3的sub-box&#xff08;用i3、…

CosiWorksNew

CMainFrameCBCGPRibbonBar m_wndRibbonBar; 工具栏CreateRibbonBar() 构建工具栏CWProjectBar m_wndProjectBar; 左侧的工程窗口CWModelLibBar m_wndModellibBar; 左侧的模型窗口ShowControlBar(CBCGPDockingControlBar*, BOOL, BOOL, BOOL) 显示或隐藏左侧窗…

make xdb file.php,SCWS入门使用指南

B 结合php使用要想在php中使用scws分词工具&#xff0c;必须安装php扩展&#xff0c;并且必须要求php与scws安装在同一台机器。cd /usr/local/src/scws-1.2.2/usr/local/php-5.3.8/bin/phpize ./configure --with-scws/usr/local/scws --with-php-config/usr/local/php-5…

异步编程中的最佳做法(Async/Await) --转

近日来&#xff0c;涌现了许多关于 Microsoft .NET Framework 4.5 中新增了对 async 和 await 支持的信息。 本文旨在作为学习异步编程的“第二步”&#xff1b;我假设您已阅读过有关这一方面的至少一篇介绍性文章。 本文不提供任何新内容&#xff0c;Stack Overflow、MSDN 论坛…

spline 用法

控制actor在level中沿着一个spline path运动。 由finterp to 函数的输出数值来控制每一帧actor运动的距离。 从开始位置到spline path的终点的时间&#xff0c;是1/interp speed。假如我们控制actor从开头到终点运动的总时间是1秒&#xff0c;那么 interp speed就传入0.5&#…

php 时间戳获取周几,PHP实现根据时间戳获取周几的方法,php戳获取周_PHP教程

PHP实现根据时间戳获取周几的方法&#xff0c;php戳获取周本文实例讲述了PHP实现根据时间戳获取周几的方法。分享给大家供大家参考&#xff0c;具体如下&#xff1a;获取某个时间戳的周几&#xff0c;以及未来几天以后的周几其中&#xff1a;$time 代表时间$i 今天开始具体示例…

HTML5 Canvas 高仿逼真 3D 布料图案效果

HTML5 规范引进了很多新特性&#xff0c;其中最令人期待的之一就是 Canvas 元素&#xff0c;HTML5 Canvas 提供了通过 JavaScript 绘制图形的方法&#xff0c;非常强大。下面给大家分享一个 HTML5 Canvas 绘制的 3D 布料图案效果。 温馨提示&#xff1a;为保证最佳的效果&#…

oracle中exp/imp讲解

Exp/Imp是oracle备份数据的两个命令行工具 1.本地数据库导入导出 1.导出 &#xff08;运行---cmd中操作&#xff09; exp 用户名/密码数据库实例名file本地存放路径 eg: exp jnjp/jnjpORCL fileC:/jnjp.dmp2.导入 imp 用户名/密码数据库实例名file本地数据库文件存放路径fully …

用toad实现oracle数据迁移,Oracle 使用TOAD实现导入导出Excel数据

在Oracle应用程序的开发过程中&#xff0c;访问数据库对象和编写SQL程序是一件乏味且耗费时间的工作&#xff0c;对数据库进行日常管理也是需要很多SQL脚本才能完成的。Quest Software为此提供了高效的Oracle应用开发工具-Toad。在Toad的新版本中&#xff0c;还加入了DBA模块&a…