jzoj 1360. 【2011.12.31普及模拟】逃离洞穴
来源:互联网 发布:java生成app 编辑:程序博客网 时间:2024/05/09 19:47
题目描述
小Z最近出去旅游,遇上倒霉事了。他和旅游团一起去游洞穴。这里有n个洞穴,编号为1到n。它们之间,有的有双向的小路相连,有的却没有,不过所有洞穴都通过小路连在了一起,没有任何两个洞穴不能相互到达。当游客们分散在各处的时候,忽然出了些故障,所有灯全部熄灭。这时广播响起,要求游客们迅速疏散。
有两个洞穴是出口,分别编号1和n,每个游客都选择最短的路线,从某一个出口逃离。所有的小路都是有长度的,而所有游客的速度都认为是1。
现在请问,在给定的T时间内,最多有多少人可以逃离。另一个问题,最慢的游客离开需要多少时间。
输入
第一行,三个整数,n,m和T,分别表示洞穴的数目,小路的数量和给定的逃离时间。
接下来m行,每行三个整数x,y和L,表示这条小路连接了编号为x和y的洞穴,而它的长度为L。x和y互不相同,且都在1到n之间。任何两个洞穴之间最多只有一条小路将它们直接相连。
下一行,一个整数k,表示游客的数量。
最后一行,k个整数,每个都在1到n之间,表示每个游客所在的洞穴(可能一个洞穴会有多个人)。
输出
输出两行,每行一个整数。第一行输出T时间内多少人可以逃离,第二行输出最慢的游客逃离洞穴所需要的时间。
思路
用Floyd求出最短路,然后进行一些判断就可以了
var f:array[0..1000,0..1000] of longint; i,j,k,n,m,s,t,x,y,z,max:longint;function min(x,y:longint):longint;begin if x<=y then exit(x) else exit(y);end;begin assign(input,'escape.in'); reset(input); assign(output,'escape.out'); rewrite(output); readln(n,m,t); for i:=1 to n do for j:=1 to n do f[i,j]:=maxlongint div 2; for i:=1 to m do begin readln(x,y,z); f[x,y]:=z; f[y,x]:=z; end; for i:=1 to n do f[i,i]:=0; for k:=1 to n do for i:=1 to n do for j:=1 to n do if (i<>j) and (j<>k) and (k<>i) and (f[i,k]+f[k,j]<f[i,j]) then begin f[i,j]:=f[i,k]+f[k,j]; f[j,i]:=f[i,j]; end; readln(k); for i:=1 to k do begin read(x); if (f[x,1]<=t) or (f[x,n]<=t) then begin inc(s); if (f[x,1]<=t) and (f[x,n]<=t) then begin if max<min(f[x,1],f[x,n]) then max:=min(f[x,1],f[x,n]); end else begin if f[x,1]<=t then begin if max<f[x,1] then max:=f[x,1]; end else if max<f[x,n] then max:=f[x,n]; end end else begin if max<min(f[x,1],f[x,n]) then max:=min(f[x,1],f[x,n]); end; end; writeln(s); writeln(max);end.
1 0
- jzoj 1360. 【2011.12.31普及模拟】逃离洞穴
- jzoj 1359. 【2011.12普及模拟】数三角
- jzoj 1350. 【2011.12.17普及模拟】流星雨
- jzoj 1570. 【普及模拟】射击
- jzoj 1571. 【普及模拟】过河
- jzoj 1579. 【普及模拟】老鼠
- jzoj 1589. 【普及模拟】洗牌
- jzoj 1591. 【普及模拟】游戏
- jzoj P1508【普及模拟】蚂蚁
- jzoj P1507【普及模拟】数列
- jzoj P1510【普及模拟】剪草
- 【普及模拟】数列 (jzoj)
- jzoj P1509【普及模拟】单元格
- jzoj 1348. 【2011.12.17普及模拟】越野跑
- jzoj 1349. 【2011.12.17普及模拟】连线游戏
- jzoj 1353. 【2011.12.24普及模拟】渡河问题
- jzoj 1354. 【2011.12.24普及模拟】土地购买
- jzoj 1355. 【2011.12.24普及模拟】珍珠分对
- Gallery学习————检测手机中是否存在外部存储设备
- C/C++中函数传参方式简述
- OpenGL ES andoid学习————1
- InfoSphere CDC 实时同步本地数据到云端的BigInsights
- OpenGL ES andoid学习————2
- jzoj 1360. 【2011.12.31普及模拟】逃离洞穴
- Wijmo 2016 V2 强势发布!
- android中文字斜着显示
- android中TabHost和RadioGroup
- 获得String形式日期的后一天
- SlidingMenu——使用前的配置
- SlidingMenu官方实例分析1——ExampleListActivity
- 设置PopupMenu创建弹出式菜单
- SlidingMenu官方实例分析2——BaseActivity