source:noip2015-shy-3
給定一張 n 個點的有向帶權完全圖,和乙個陣列 a ,請按順序刪除陣列中的點,請求出在刪除點 a[i] 以前,所有未刪除點對之間的最短路的值的和。
第一行乙個整數 n ,表示點數;
接下來 n 行,每行 n 個數構成鄰接矩陣,描述每條邊的權值,保證 i 號點到 i 號點的權值為 0 ;
最後一行 n 個小於等於 n 的不同的數,描述陣列 a。
輸出 1 行 n 個數,表示答案。
輸入 [複製]
4輸出0 3 1 1
6 0 400 1
2 4 0 1
1 1 1 0
4 1 2 3
17 23 404 0
【資料範圍】
對 30% 的輸入資料 :1≤n≤10 ;
對 100% 的輸入資料 :1≤n≤500;0<權值≤100000 。
先轉變成倒插入數字的問題,再用floyd算最短距離:n方算之前的插入的點到當前點的最短距離,和當前點到之前插入的點的最短距離,最後再用n方算經過當前點的路徑的最短距離
#include#include#include
#include
#include
#include
#include
#include
#include
using
namespace
std;
const
int n=505
;long
long
dis[n][n];
intn,num[n],ans[n];
intmain()
for(int k=1;k<=i-1;k++)
for(int j=1;j<=i-1;j++)
for(int k=1;k<=i-1;k++)
for(int j=1;j<=i-1;j++)
dis[num[k]][num[j]]=min(dis[num[k]][num[j]],dis[num[k]][num[i]]+dis[num[i]][num[j]]);
for(int k=1;k<=i;k++)
for(int j=1;j<=i;j++)
ans[i]+=dis[num[k]][num[j]];
} for(int i=n;i>=1;i--)
cout
<"";
return0;
}
筆試刷題總結
今天刷了一些筆試題,以下是刷完筆試題後看到的相關知識點的解析,做個小結。1 多型主要以兩種形式,靜態多型和動態多型,靜態多型主要實現了函式過載和運算子過載。動態多型主要實現了虛函式。虛函式是動態聯編,程式在執行的過程中確定呼叫哪乙個函式。2 int s 8 定義乙個指標陣列,該陣列中每個元素是乙個指...
Java刷題總結
public class hasstatic a.程式通過編譯,輸出結果為 x 102 b.程式通過編譯,輸出結果為 x 103 c.10行不能通過編譯.因為x星私有靜態變數 d.5行不能通過編譯.因為引用了私有靜態變數 解析 同乙個類內,private變數可以訪問,所以cd錯。由於x是static...
LeetCode刷題總結
123 4567 891011 12 元素交換 swap a 1 a 3 sort排序 sort a.begin a.end 陣列顛倒 reverse a.begin a.end 陣列元素置為0 memset a,0,a.size 陣列取值 a.push back 定義二維陣列 vector vec...