1343:城际公路网

 1 #include<stdio.h>
 2 int map[301][301];
 3 int cal(int n)
 4 {
 5     int i,j,sum=0;
 6     for(i=1;i<n;++i)
 7     {
 8         for(j=i+1;j<=n;++j)
 9             sum+=map[i][j];
10     }
11     return sum;
12 }
13 int main()
14 {
15     int n,k,a,b,w;
16     while(scanf("%d",&n)!=EOF)
17     {
18         int i,j,l;
19         for(i=1;i<=n;++i)
20             for(j=1;j<=n;++j)
21                 scanf("%d",&map[i][j]);
22         scanf("%d",&k);
23         for(i=1;i<=k;++i)
24         {
25             scanf("%d%d%d",&a,&b,&w);
26             for(j=1;j<=n;++j)
27             {
28                 for(l=1;l<=n;++l)
29                 {
30                     int temp=map[j][a]+w+map[b][l];
31                     if(map[j][l]>temp)
32                     {
33                         map[j][l]=temp;
34                         map[l][j]=temp;
35                     }
36                 }
37             }
38             printf("%d\n",cal(n));
39         }
40     }
41     return 0;
42 }

 

posted @ 2012-04-18 17:04  dupuleng  阅读(119)  评论(0)    收藏  举报