这道题其实还是不难的,只是自己搞混了=-=//晕,做了好久啊,其实就是个spfa,关键是存储路径搞昏了。输出格式要求太严了,航模不能有空格啊,所以因为格式WA了三次,哭啊/(ㄒoㄒ)/~~。贴上代码吧=-=。

 const maxn=;
type
link=^node;
node=record
t,v,l:longint;
f:link;
end;
var n,m,s,t,v,l,i,j,toto,sp:longint;
dis:double;
adj:array[..] of link;
bl:array[..,..] of boolean;
f,speed:array[..] of longint;
go:array[..,..,..] of longint;
d:array[..,..] of double;
procedure insert(s,t,v,l:longint);
var p:link;
begin
new(p);
p^.f:=adj[s];
p^.t:=t;
p^.v:=v;
p^.l:=l;
adj[s]:=p;
end;
procedure spfa;
var p:link;
now,l,r,v:longint;
begin
for l:= to do
for r:= to n do d[l,r]:=maxn;
fillchar(bl,sizeof(bl),true);
l:=; r:=; d[,]:=; f[]:=; bl[,]:=false; go[,,]:=; speed[]:=;
while l<=r do
begin
now:=f[l];
v:=speed[l];
p:=adj[now];
while p<>nil do
begin
if p^.v<> then
begin
if d[v,now]+(p^.l/p^.v)<d[p^.v,p^.t] then
begin
d[p^.v,p^.t]:=d[v,now]+(p^.l/p^.v);
go[p^.v,p^.t,]:=now;
go[p^.v,p^.t,]:=v;
if bl[p^.v,p^.t] then
begin
bl[p^.v,p^.t]:=false;
inc(r);
f[r]:=p^.t;
speed[r]:=p^.v;
end;
end;
end
else begin
if d[v,now]+(p^.l/v)<d[v,p^.t] then
begin
d[v,p^.t]:=d[v,now]+(p^.l/v);
go[v,p^.t,]:=now;
go[v,p^.t,]:=v;
if bl[v,p^.t] then
begin
bl[v,p^.t]:=false;
inc(r);
f[r]:=p^.t;
speed[r]:=v;
end;
end;
end;
p:=p^.f;
end;
inc(l);
bl[v,now]:=true;
end;
end;
procedure print(x,v:longint);
begin
if (x<>) then print(go[v,x,],go[v,x,]);
if x<>toto then write(x-,' ')
else write(x-);
end;
begin
readln(n,m,toto);
inc(toto);
for i:= to m do
begin
readln(s,t,v,l);
insert(s+,t+,v,l);
end;
spfa;
dis:=maxn;
for i:= to do
if d[i,toto]<dis then
begin
dis:=d[i,toto];
sp:=i;
end;
print(toto,sp);
end.

(转载请注明出处:http://www.cnblogs.com/Kalenda/)

P3245: 最快路线的更多相关文章

  1. BZOJ 3245: 最快路线 spfa

    3245: 最快路线 题目连接: http://www.lydsy.com/JudgeOnline/problem.php?id=3245 Description 精明的小R每每开车出行总是喜欢走最快 ...

  2. BZOJ3245:最快路线(最短路)

    Description 精明的小R每每开车出行总是喜欢走最快路线,而不是最短路线.很明显,每条道路的限速是小R需要考虑的关键问题.不过有一些限速标志丢失了,于是小R将不知道能开多快.不过有一个合理的方 ...

  3. [图论训练]BZOJ 3245: 最快路线【最短路】

    Description 精 明的小R每每开车出行总是喜欢走最快路线,而不是最短路线.很明显,每条道路的限速是小R需要考虑的关键问题.不过有一些限速标志丢失了,于是小R将不知 道能开多快.不过有一个合理 ...

  4. [BZOJ3245]最快路线

    Description 精明的小R每每开车出行总是喜欢走最快路线,而不是最短路线.很明显,每条道路的限速是小R需要考虑的关键问题.不过有一些限速标志丢失了,于是小R将不知道能开多快.不过有一个合理的方 ...

  5. BZOJ 3245 最快路线

    和道路升级差不多,只是用的spfa; 十分有毒,在BZOJ上一直WA,对拍拍出来是一样的却告诉我不一样,然后发现自己把'\n'写成了‘\b’... #include<cstdio> #in ...

  6. NOIP 考前 图论练习

    LJOJ 1500: 题目:http://www.docin.com/p-601990756.html Sol:贪心,从叶子结点往上加入无法传递了,就需要建设. Dfs返回的是到达叶子节点最多所要的能 ...

  7. WebGIS在行业中应用的演变

    结合我本身的项目及WebGIS在公检法行业中的应用,对此作了一个演变过程的总结:         第一阶段:GIS基本功能的应用:Data Show(数据展示):Search(搜索):Search b ...

  8. 算法导论——lec 11 动态规划及应用

    和分治法一样,动态规划也是通过组合子问题的解而解决整个问题的.分治法是指将问题划分为一个一个独立的子问题,递归地求解各个子问题然后合并子问题的解而得到原问题的解.与此不同,动态规划适用于子问题不是相互 ...

  9. PTA天梯 L3-007 天梯地图

    L3-007 天梯地图 题目: 本题要求你实现一个天梯赛专属在线地图,队员输入自己学校所在地和赛场地点后,该地图应该推荐两条路线:一条是最快到达路线:一条是最短距离的路线.题目保证对任意的查询请求,地 ...

随机推荐

  1. Boost C++: 网络编程1

    #include <iostream> #include <boost/asio.hpp> #include <boost/config/compiler/visualc ...

  2. 如何实现Android 中断线程的处理

    我现在对一个用户注册的功能1.用ProgressDialog将当前页面设成不可操作(保留返回键 退出ProgressDialog)2.用一个线程clientThread执行数据的提交和返回 问题:考虑 ...

  3. C puzzles详解【38-45题】

    第三十八题 What is the bug in the following program? #include <stdlib.h> #include <stdio.h> # ...

  4. CentOS 6.4安装lnmp环境

    1.配置防火墙,开启80端口.3306端口 vi /etc/sysconfig/iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport ...

  5. 发送Ajax请求获取JSON格式数据

    Aspx前端页面: <script type="text/javascript"> $(function () { $.getJSON("Ajax/TestA ...

  6. 判断文件夹下是否存在txt格式的文本文件

    判断D盘下是否存在txt类型的文件 string p_Path="D:\\"; bool IsHaveTxt() { DirectoryInfo foldinfo = new Di ...

  7. js 实现栈

    function Stack() { this.dataStore = []; this.top = 0; this.push=push; this.pop=pop; this.peek=peek; ...

  8. web.xml中的url-pattern映射规则

    Servlet和filter是J2EE开发中常用的技术,使用方便,配置简单.servlet和filter中的url-pattern有一些文章在里面的,总结了一些东西,以免遇到问题又要浪费时间. 一,s ...

  9. Php中正则小结(一)

    一.概念 语法模式类似perl.表达式必须用分隔符闭合,比如一个正斜杠(/). 分隔符可以是任意非字母非数字,除反斜杠(\)和空字节之外的非空白ascii字符 如果分隔符 在表达式中使用,需要使用反斜 ...

  10. php 获取文件后缀名

    $file_ext = strtolower(substr(strrchr($upload_file, '.'), 1)); strrchr:查找指定字符在字符串中的最后一次出现 string str ...