POJ 3255:Roadblocks(次短路)
题目大意:求无向图的次短路。
分析:
在起点终点各求一次最短路,枚举边,通过该边的最短路为其权值加上到起点和终点最短路之和,找到最短但又比最短路长的路径。
代码:
program block;
type
point=^node;
node=record
v,c:longint; next:point; end;
var
a:array[..]of point;
dis:array[..,..]of longint;
q:array[..]of longint;
g:array[..]of boolean;
e:array[..,..]of longint;
n,i,m,x,y,v,ans:longint; p:point;
procedure add(x,y,c:longint);
var p:point;
begin
new(p); p^.v:=y; p^.c:=c; p^.next:=a[x]; a[x]:=p;
end;
procedure spfa(s,d,l:longint);
var i,h,t,u,v,k:longint;
begin
fillchar(g,sizeof(g),false);
for i:= to n do dis[i,l]:=maxlongint div ; dis[s,l]:=; g[s]:=true;
h:=; t:=; q[]:=s;
while h<t do
begin
inc(h); u:=q[h]; g[u]:=false; new(p); p:=a[u];
while p<>nil do
begin
v:=p^.v;
if dis[v,l]>dis[u,l]+p^.c then
begin
dis[v,l]:=dis[u,l]+p^.c;
if g[v]=false then begin g[v]:=true; inc(t);q[t]:=v;end;
end;
p:=p^.next;
end;
end;
end;
begin
assign(input,'block.in');
reset(input);
assign(output,'block.out');
rewrite(output);
readln(n,m);
for i:= to m do
begin
readln(x,y,v); e[i,]:=x; e[i,]:=y; e[i,]:=v;
add(x,y,v); add(y,x,v);
end;
spfa(,n,); spfa(n,,); ans:=maxlongint;
for i:= to m do
begin
v:=dis[e[i,],]+dis[e[i,],]+e[i,]; if (v<ans)and(v>dis[n,]) then ans:=v;
v:=dis[e[i,],]+dis[e[i,],]+e[i,]; if (v<ans)and(v>dis[n,]) then ans:=v;
end;
writeln(ans);
close(input); close(output);
end.
POJ 3255:Roadblocks(次短路)的更多相关文章
- POJ 3255 Roadblocks (次级短路问题)
解决方案有许多美丽的地方.让我们跳回到到达终点跳回(例如有两点)....无论如何,这不是最短路,但它并不重要.算法能给出正确的结果 思考:而最短的路到同一点例程.spfa先正达恳求一次,求的最短路径的 ...
- poj 3255 Roadblocks 次短路(两次dijksta)
Roadblocks Time Limit : 4000/2000ms (Java/Other) Memory Limit : 131072/65536K (Java/Other) Total S ...
- POJ 3255 Roadblocks (次短路 SPFA )
题目链接 Description Bessie has moved to a small farm and sometimes enjoys returning to visit one of her ...
- POJ 3255 Roadblocks (次短路)
题意:给定一个图,求一条1-n的次短路. 析:次短路就是最短路再长一点呗,我们可以和求最短路一样,再多维护一个数组,来记录次短路. 代码如下: #pragma comment(linker, &quo ...
- POJ 3255 Roadblocks(A*求次短路)
Roadblocks Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 12167 Accepted: 4300 Descr ...
- POJ 3255 Roadblocks (次短路模板)
Roadblocks http://poj.org/problem?id=3255 Time Limit: 2000MS Memory Limit: 65536K Descriptio ...
- poj - 3225 Roadblocks(次短路)
http://poj.org/problem?id=3255 bessie 有时会去拜访她的朋友,但是她不想走最快回家的那条路,而是想走一条比最短的路长的次短路. 城镇由R条双向路组成,有N个路口.标 ...
- 次最短路径 POJ 3255 Roadblocks
http://poj.org/problem?id=3255 这道题还是有点难度 要对最短路径的算法非常的了解 明晰 那么做适当的修改 就可以 关键之处 次短的路径: 设u 到 v的边权重为cost ...
- poj 3255 Roadblocks
Roadblocks Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 13216 Accepted: 4660 Descripti ...
- POJ 3255 Roadblocks --次短路径
由于次短路一定存在,则可知次短路一定是最短路中某一条边不走,然后回到最短路,而且只是一条边,两条边以上不走的话,就一定不会是次短路了(即以边换边才能使最小).所以可以枚举每一条边,算出从起点到这条边起 ...
随机推荐
- NOIP2018提高组Day1 解题报告
前言 关于\(NOIP2018\),详见此博客:NOIP2018学军中学游记(11.09~11.11). 这次\(NOIP\ Day1\)的题目听说很简单(毕竟是三道原题),然而我\(T3\)依然悲剧 ...
- PHP数组排序方法总结
随着PHP的快速发展,用它的人越来越多,在PHP数组学习摘录部分了解到最基本的PHP数组的建立和数组元素的显示.需要深入学习下PHP数组的相关操作.首先接触的就是PHP数组排序.降序的排序问题. so ...
- Bootstrap 弹出框(Popover)插件
Bootstrap 弹出框(Popover)插件与Bootstrap 提示工具(Tooltip)插件类似,提供了一个扩展的视图,用户只需要把鼠标指针悬停到元素上面即可.弹出框的内容完全由Bootstr ...
- css3媒体查询中device-width和width的区别
1.device-width 定义:定义输出设备的屏幕可见宽度. 不管你的网页是在safari打开还是嵌在某个webview中,device-width都只跟你的设备有关,如果是同一个设备,那么他的值 ...
- java算法面试题:递归算法题2 第1个人10,第2个比第1个人大2岁,依次递推,请用递归方式计算出第8个人多大?
package com.swift; public class Digui_Return { public static void main(String[] args) { /* * 递归算法题2 ...
- JSP出现"属性值[request.getParameter("myMessage")]引用["],在值内使用时必须被转义"的解决方法
写JSP时出现属性值[request.getParameter("myMessage")]引用["],在值内使用时必须被转义. 源代码: <jsp:setPrope ...
- jpeg解码库使用实例
jpeg库下载地址: http://www.ijg.org/ 交叉编译三部曲: A ./configure --host=arm-linux-gcc --prefix=/home/flying/jpe ...
- 洛谷P3374树状数组1
下有彩蛋(from https://www.cnblogs.com/wuwangchuxin0924/p/5921130.html)树状数组的blog写的最好的是这位//https://www.cnb ...
- 【前端_js】理解 JavaScript 的 async/await
async 和 await 在干什么 任意一个名称都是有意义的,先从字面意思来理解.async 是“异步”的简写,而 await 可以认为是 async wait 的简写.所以应该很好理解 async ...
- yum仓库及配置
本文由秀依林枫提供友情赞助,首发于烂泥行天下. 最近由于服务器需求,需要在公司内网搭建内网yum源. 搭建内网yum源需要分以下几个步骤,如下: 1. yum是什么 2. repo文件是什么 3. r ...