标签:des style blog http color io for cti
Description
Greg has a weighed directed graph, consisting of n vertices. In this graph any pair of distinct vertices has an edge between them in both directions. Greg loves playing with the graph and now he has invented a new game:
Help Greg, print the value of the required sum before each step.
Input
The first line contains integer n(1 ≤ n ≤ 500) — the number of vertices in the graph.
Next n lines contain n integers each — the graph adjacency matrix: the j-th number in the i-th line aij(1 ≤ aij ≤ 105, aii = 0)represents the weight of the edge that goes from vertex i to vertex j.
The next line contains n distinct integers: x1, x2, ..., xn(1 ≤ xi ≤ n) — the vertices that Greg deletes.
Output
Print n integers — the i-th number equals the required sum before the i-th step.
Please, do not use the %lld specifier to read or write 64-bit integers in C++. It is preferred to use the cin, cout streams of the %I64dspecifier.
Sample Input
1
0
1
0
2
0 5
4 0
1 2
9 0
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
1 #include <cstdio> 2 #include <cstring> 3 #define maxn 510 4 typedef long long LL; 5 LL d[maxn][maxn];//存放最短距离 6 int seq[maxn];//删除的顺序 7 LL ans[maxn];//答案 8 9 inline LL min(LL a,LL b){ 10 return a < b ? a : b; 11 } 12 13 void update(int s,int n){//floyd求最短距离 14 for(int i = 1;i <= n;i++) 15 for(int j = 1;j <= n;j++) 16 d[i][j] = min(d[i][s] + d[s][j],d[i][j]); 17 } 18 19 LL query(int s,int n){//反过来做。这样就相当于每次添加一个点到图中,然后询问当前图的所有点间最短距离之和。 20 LL sum = 0; 21 for(int i = n,u = seq[i];i >= s;u = seq[--i])//傻傻看不懂 22 for(int j = n,v = seq[j];j >= s;v = seq[--j]) 23 sum += d[u][v]; 24 return sum; 25 } 26 27 int main() 28 { 29 int n; 30 while(scanf("%d",&n) != EOF){ 31 for(int i = 1;i <= n;i++) 32 for(int j = 1;j <= n;j++) 33 scanf("%I64d",&d[i][j]); 34 for(int i = 1;i <= n;i++) 35 scanf("%d",&seq[i]); 36 for(int i = n;i >= 1;i--){ 37 update(seq[i],n); 38 ans[i] = query(i,n); 39 } 40 for(int i = 1;i <= n;i++) 41 printf("%I64d ",ans[i]); 42 printf("\n"); 43 } 44 return 0; 45 }
Problem B Codeforces 295B 最短路(floyd),布布扣,bubuko.com
Problem B Codeforces 295B 最短路(floyd)
标签:des style blog http color io for cti
原文地址:http://www.cnblogs.com/Run-dream/p/3889561.html