首页 > 其他 > 详细

hdu 1301 Jungle Roads

时间:2014-04-15 14:55:13      阅读:445      评论:0      收藏:0      [点我收藏+]

http://acm.hdu.edu.cn/showproblem.php?pid=1301

bubuko.com,布布扣
bubuko.com,布布扣
 1 #include <cstdio>
 2 #include <cstring>
 3 #include <algorithm>
 4 #define maxn 500
 5 using namespace std;
 6 const int inf=1<<30;
 7 
 8 int g[maxn][maxn];
 9 int dis[maxn];
10 bool vis[maxn];
11 int n,x,mm,sum;
12 char ch,ch1;
13 
14 void prim()
15 {
16     memset(vis,false,sizeof(vis));
17     for(int i=0; i<n; i++) dis[i]=g[0][i];
18     dis[0]=0;
19     vis[0]=true;
20     for(int i=1; i<n; i++)
21     {
22         int m=inf,x;
23         for(int y=0; y<n; y++) if(!vis[y]&&dis[y]<m) m=dis[x=y];
24         vis[x]=true;
25         sum+=m;
26         for(int y=0; y<n; y++) if(!vis[y]&&dis[y]>g[x][y]) dis[y]=g[x][y];
27     }
28 }
29 
30 int main()
31 {
32     while(scanf("%d",&n)!=EOF)
33     {
34         if(n==0) break;
35         getchar();
36         for(int i=0; i<27; i++)
37         {
38             for(int j=0; j<27; j++)
39             {
40                 if(i==j) g[i][j]=0;
41                 else g[i][j]=inf;
42             }
43         }
44         for(int i=1; i<=n-1; i++)
45         {
46             scanf("%c %d%*c",&ch,&x);
47             for(int j=0; j<x; j++)
48             {
49                 scanf("%c %d%*c",&ch1,&mm);
50                 g[ch-A][ch1-A]=g[ch1-A][ch-A]=mm;
51             }
52         }
53         sum=0;
54         prim();
55         printf("%d\n",sum);
56     }
57     return 0;
58 }
View Code
bubuko.com,布布扣

 

hdu 1301 Jungle Roads,布布扣,bubuko.com

hdu 1301 Jungle Roads

原文:http://www.cnblogs.com/fanminghui/p/3663467.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!