解题报告:{HDU}{1874}{畅通工程续}
来源:互联网 发布:辛辛那提大学好吗 知乎 编辑:程序博客网 时间:2024/06/05 10:36
题目:
- Problem Description
- 某省自从实行了很多年的畅通工程计划后,终于修建了很多路。不过路多了也不好,每次要从一个城镇到另一个城镇时,都有许多种道路方案可以选择,而某些方案要比另一些方案行走的距离要短很多。这让行人很困扰。
现在,已知起点和终点,请你计算出要从起点到终点,最短需要行走多少距离。
- Input
- 本题目包含多组数据,请处理到文件结束。
每组数据第一行包含两个正整数N和M(0接下来是M行道路信息。每一行有三个整数A,B,X(0再接下一行有两个整数S,T(0<=S,T
- Output
- 对于每组数据,请在一行里输出最短需要行走的距离。如果不存在从S到T的路线,就输出-1.
- Sample Input
- 3 30 1 10 2 31 2 10 23 10 1 11 2
- Sample Output
- 2-1
分析:很显然,这题是一道很纯的最短路问题,可以直接使用Dijkstra解决。获取有关最短路问题的知识可以先看算法导论第
24章,或者先读一下余远铭的《最短路算法及其应用》就这道题而言,我具体的实现是这样的:1.由于输入规模不大,我选择邻接矩阵Cost[x][y]来保存这张图。另外为了完成Dijkstra算法,至少需要表示当前点
最短路的dest[N]和表示当前点是否已被拓展的used[N]两个数组,在初始化时,应当将Cost和dest的每一项初始化为INF
(一个很大的数),used[N]应当初始化为0。2.输入完成后,需要定义好过程的初始状态:首先,将used[S]标记为1(已拓展);其次,由于每一次迭代时都用
Path_Now作为当前具有最短路性质的点,所以Path_Now=S;再然后,我用dest数组的第201位即dest[200]作为标定的值
(在整个过程中值不被改变),则只需要用一个下标Min_Num并赋初值为200即可找到一次所有已访问点中具有最短路性质的点。3.接下来便是算法实现的部分,根据Dijkstra算法的思想,比较直观的办法是,不断的循环扫描图中的每一个节点,将
那些可以直接到达当前具有最短路性质的点i找出来,并将其值赋dest[i]为dest[i]与dest[i]+Cost[i][j]中较小的一个。
针对一个具有最短路性质的点扫描完以后,将这个点标记为已扩展,并在所有未扩展的点中找出值最小的一个进行下一次扩展,如
果所有为扩展的点都不可达或者找到的最小未扩展点是要到达的点T
,则跳出该循环。4.这样算法已经结束了,只需要再输出dest[T]就可以了,当然根据题意,如果dest[T]==INF(值未改变),则表示
不能达到,输出-1。.代码:注意:1.初始化操作2.题目没有讲的太清楚,但是输入要考虑重边选择最小的情况,我就因为这个问题卡了半天3.迭代过程中找最小未扩展节点的位置时不要太省..
- 解题报告:{HDU}{1874}{畅通工程续}
- hdu 1874 畅通工程序 解题报告
- hdu 1875 畅通工程再续 解题报告
- HDU 1231 畅通工程 解题报告
- hdu 1863 畅通工程 解题报告
- Hdu 1232 畅通工程 解题报告
- 【解题报告】HDU 1874 畅通工程续 -- Dijkstra算法详解 单源点最短路问题
- HDU1874 畅通工程续 解题报告--Dijkstra
- 杭电acm1232 hdu-acm-1232畅通工程解题报告
- Hdu 1879 继续畅通工程 最小生成树 解题报告
- Hdu1232畅通工程 解题报告
- HDU1232 畅通工程 解题报告
- HDU1874 畅通工程续 解题报告--最短路dijkstra算法
- HDOJ-1875-畅通工程再续 解题报告
- HDOJ 1232 畅通工程解题报告
- HDU1233 还是畅通工程 解题报告--prim
- HDU1863 畅通工程 解题报告--prim
- HDU1879 继续畅通工程 解题报告--prim
- error SYSGEN0000: error(s) in sysgen phase 编译错误
- 3500份课后答案,很值得收藏,这里只介绍了一部分。
- Linux:挂接(mount)命令的使用方法
- 某公司笔试题
- how does wifi work?
- 解题报告:{HDU}{1874}{畅通工程续}
- inteview of HS
- 关于设计模式
- 函数指针,函数指针数组,函数指针数组的指针
- How to change the language to English for Oracle SQL Developer(如何将SQL developer改成英文界面)
- php调试工具xdebug的配置说明
- 与八期师弟们合作第一天感受
- 零基础学Qt 4编程实例之如何设置Qt应用程序的观感-使用QStyle类
- Online Judge