码迷,mamicode.com
首页 > 其他好文 > 详细

POJ--3268--Silver Cow Party (最短路 迪杰斯特拉的变形)

时间:2015-07-20 12:38:03      阅读:96      评论:0      收藏:0      [点我收藏+]

标签:

代码:

 1 #include<iostream>
 2 #include<stdio.h>
 3 #include<stdlib.h>
 4 #include<string.h>
 5 #include<queue>
 6 #include<vector>
 7 #include<algorithm>
 8 using namespace std;
 9 
10 #define N 1100
11 #define INF 0x3f3f3f3f3f
12 
13 int n, m, dist[N], G[N][N], v[N];
14 
15 int DIST(int S, int E)
16 {
17     dist[1]=0;
18     v[1]=1;
19 
20     for(int i=1; i<=n; i++)
21         dist[i] = G[1][i];
22 
23     for(int i=1; i<=n; i++)
24     {
25         int index=-1, MAX=-1;
26 
27         for(int j=1; j<=n; j++)
28         {
29             if(v[j]==0 && dist[j]>MAX)
30             {
31                 index = j, MAX = dist[j];
32             }
33         }
34         v[index]=1;
35 
36         for(int j=1; j<=n; j++)
37         {
38             if(v[j]==0 && dist[j]<min(dist[index], G[index][j]))
39             {
40                 dist[j]=min(dist[index], G[index][j]);
41             }
42         }
43     }
44     return dist[E];
45 } 
46 
47 int main()
48 {
49     int t, k=1;
50 
51     scanf("%d", &t);
52 
53     while(t--)
54     {
55         int a, b, w, i;
56         scanf("%d%d", &n, &m);
57 
58         memset(v, 0, sizeof(v));
59         memset(G, -1, sizeof(G));
60 
61         for(i=1; i<=m; i++)
62         {
63             scanf("%d%d%d", &a, &b, &w);
64             G[a][b]=G[b][a]=max(G[a][b], w);
65         }
66 
67         int ans = DIST(1, n);
68 
69         printf("Scenario #%d:\n", k++);
70         printf("%d\n\n", ans);
71     }
72     return 0;
73 }

 

POJ--3268--Silver Cow Party (最短路 迪杰斯特拉的变形)

标签:

原文地址:http://www.cnblogs.com/YY56/p/4660883.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!