SSL1624小薩的煩惱

2021-07-25 06:05:50 字數 1634 閱讀 8493

聖誕節又要到了!小薩希望和自己心儀的mm一起出去度過乙個浪漫的的聖誕節。他進行了詳盡的準備,找到了n個很適合他們去約會的好地方,但無奈小薩和他的mm都是初三學校,晚上必須回學校上晚修,沒有足夠的時間讓他們走遍每乙個地方。迫於無奈,小薩選擇了乙個最合適的地方s。小薩打算和他的mm一起步行到那個地方,那樣他們就有很多時間來聊天玩樂,但是無奈時間有限,小薩決定坐公共汽車過去。然而,小薩發覺,自己的錢只夠買一張公共汽車車票了!小薩該怎麼辦呢?他找到了你……

小薩將給出一張地圖,它可以看做乙個有n(n<=100)個結點的圖。這張地圖有n個公共汽車站,小薩只可以在這n個汽車站上公共汽車。有些車站之間存在一條雙向通路,無論是公共汽車還是小薩,都只能走這些通路。若兩個車站之間的距離為d,步行所需要的時間為2*d秒,坐公共汽車所需要的時間為d秒。小薩他們只有t秒的時間,他希望你求出他和他的mm出去約會後能否及時趕回來,若不能,則輸出「you are day dreaming!」,否則輸出他們所需要花費的最少時間。

注意:一張公共汽車車票可以使用兩次(只可以搭乘同一輛公共汽車),即可以認為小薩去約會地點的時間和回來的時間相等。

有乙個n*n的地圖,要從點1到點s,有一次時間減半的機會,問最短時間。

floyd,用f[i,j,0]放不減半的路徑,f[i,j,1]放減半的路徑。

f[i,j,0]=min(f[i,j,0],f[i,j,0]+f[i,j,0]);

f[i,j,1]=min(f[i,j,1],f[i,j,1]+f[i,j,0]);

f[i,j,1]=min(f[i,j,1],f[i,j,0]+f[i,j,1]);

時間複雜度:o(n*n*n)

var

n,t,s,i,j,k:longint;

a:array[1..100,0..100]of real;

f:array[1..100,0..100,0..1]of real;

begin

readln(n,t,s);

for i:=1

to n do

for j:=1

to n do

begin

read(a[i,j]);

if a[i,j]=0

then a[i,j]:=10000000;

f[i,j,0]:=a[i,j]*2;

f[i,j,1]:=a[i,j];

end;

for k:=1

to n do

for i:=1

to n do

for j:=1

to n do

begin

if f[i,k,1]+f[k,j,0]1] then

f[i,j,1]:=f[i,k,1]+f[k,j,0];

if f[i,k,0]+f[k,j,1]1] then

f[i,j,1]:=f[i,k,0]+f[k,j,1];

if f[i,k,0]+f[k,j,0]0] then

f[i,j,0]:=f[i,k,0]+f[k,j,0];

end;

if f[1,s,1]*2

<=t then writeln(f[1,s,1]*2:0:0)

else writeln('you are day dreaming!');

end.

SSL ZYC 1624 小薩的煩惱

題目大意 小薩要從第乙個點走到地m個點,有些點可以走,而有些點卻不能走。每一條路所需要的時間為2 這條路的距離,其中可以選擇任意一條路 加速 到時間只要這條路的距離。請問能否在t的時間內回到第乙個點?思路 這道題就是乙個最短路徑問題,我們把從i到j不加速的最少時間記為f i j 1 加速的時間為f ...

SSLOJ1624 小薩的煩惱

聖誕節又要到了!小薩希望和自己心儀的mm一起出去度過乙個浪漫的的聖誕節。他進行了詳盡的準備,找到了n個很適合他們去約會的好地方,但無奈小薩和他的mm都是初三學校,晚上必須回學校上晚修,沒有足夠的時間讓他們走遍每乙個地方。迫於無奈,小薩選擇了乙個最合適的地方s。小薩打算和他的mm一起步行到那個地方,那...

小薩的煩惱

題目 description 聖誕節又要到了!小薩希望和自己心儀的mm一起出去度過乙個浪漫的的聖誕節。他進行了詳盡的準備,找到了n個很適合他們去約會的好地方,但無奈小薩和他的mm都是初三學校,晚上必須回學校上晚修,沒有足夠的時間讓他們走遍每乙個地方。迫於無奈,小薩選擇了乙個最合適的地方s。小薩打算和...