城市問題
time limit:10000ms memory limit:65536k
total submit:242 accepted:89
case time limit:1000ms
description
設有n個城市,依次編號為0,1,2,……,n-1(n<=100),另外有乙個檔案儲存n個城市之間的距離(每座城市之間的距離都小於等於1000)。當兩城市之間的距離等於-1時,表示這兩個城市沒有直接連線。求指定城市k到每乙個城市i(0<=i,k<=n-1)的最短距離。
input
第一行有兩個整數n和k,中間用空格隔開;以下是乙個nxn的矩陣,表示城市間的距離,資料間用空格隔開。
output
輸出指定城市k到各城市間的距離(從第0座城市開始,中間用空格分開)
sample input
3 10 3 1
3 0 2
1 2 0
sample output
3 0 2
source
elba
var//詳見上一條部落格,只改了輸入和判斷條件(一下水2題的快感~)a:array[0..1000,0..1000]of longint;
l:array[0..1000]of longint;
v:array[0..1000]of boolean;
n,k,i,j,kk:longint;
min:real;
begin
readln(n,k);
k:=k+1;//0到n-1個城市,所以要+1(理論上後面的迴圈用"0 to n-1"也可以,但是就是錯了...)
for i:=1 to n do
begin
for j:=1 to n do
begin
read(a[i,j]);
if a[i,j]=-1 then a[i,j]:=maxlongint;
end;
readln;//換行
end;
fillchar(v,sizeof(v),true);
v[k]:=false;
for i:=1 to n do l[i]:=a[k,i];
for i:=1 to n do
begin
min:=maxlongint;
for j:=1 to n do
if (v[j])and(l[j]0 then
begin
v[kk]:=false;
for j:=1 to n do
if (v[j])and(l[j]>a[kk,j]+l[kk])and(a[kk,j]<>maxlongint)then l[j]:=l[kk]+a[kk,j];//新條件判斷是否連通
end;
end;
for i:=1 to n do
write(l[i],' ');//城市k到各城市間的距離
end.
SSL ZYC 1761 城市問題
題目大意 給出n個城市兩兩之間的距離 距離為 1則為沒有直接連線的路 求第m個城市到各個城市的最短距離。注意 這裡城市的編號從0開始,也就是說,如果有100個城市,則每個城市的編號為0 1 99!思路 也就是說,如果你用1 n來表示城市的編號,你最終輸出的城市編號應該是m 1!然後,回歸正題 這是一...
SSLOJ1761 城市問題
設有n個城市,依次編號為0,1,2,n 1 n 100 另外有乙個檔案儲存n個城市之間的距離 每座城市之間的距離都小於等於1000 當兩城市之間的距離等於 1時,表示這兩個城市沒有直接連線。求指定城市k到每乙個城市i 0 i,k n 1 的最短距離。第一行有兩個整數n和k,中間用空格隔開 以下是乙個...
城市問題 Floyd
description 設有n個城市,依次編號為0,1,2,n 1 n 100 另外有乙個檔案儲存n個城市之間的距離 每座城市之間的距離都小於等於1000 當兩城市之間的距離等於 1時,表示這兩個城市沒有直接連線。求指定城市k到每乙個城市i 0 i,k n 1 的最短距離。input 第一行有兩個整...