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

POJ 1789 -- Truck History(Prim)

时间:2018-03-17 19:42:43      阅读:98      评论:0      收藏:0      [点我收藏+]

标签:class   log   char   ret   分享   prim   his   技术   bsp   

 POJ 1789 -- Truck History

 Prim求分母的最小。即求最小生成树

 1 #include<iostream>
 2 #include<cstring>
 3 #include<algorithm>
 4 using namespace std;
 5 const int maxn = 2000 + 10;
 6 const int INF = 1000000;
 7 int n;//有几个卡车 
 8 char str[maxn][10];
 9 int d[maxn];//记录编号的数值
10 int Edge[maxn][maxn];
11 int dist[maxn];
12 void prim()
13 {
14     int sum=0;
15     //加入源点
16      dist[0] = -1;
17     for(int i=1;i<n;i++)
18     {
19         dist[i] = Edge[0][i];
20     }
21     
22     for(int i=1;i<n;i++)//依次加入n-1条边
23     {
24         int min = INF,pos;
25         for(int j=1;j<n;j++)//找出最小的一条 
26         {
27             if(min>dist[j] && dist[j]!=-1)
28             {
29                 min = dist[j];pos = j;
30             }
31         }
32         //将pos加入
33          dist[pos] = -1;sum+=min;
34          //进行路径的更新
35          for(int k=1;k<n;k++)
36          {
37              if(dist[k] > Edge[pos][k])
38                  dist[k]=Edge[pos][k];
39           } 
40      } 
41      cout<<"The highest possible quality is 1/"<<sum<<"."<<endl;
42 }
43 
44 int main()
45 {
46     while(cin>>n && n)
47     {
48         for(int i=0;i<n;i++)
49         {
50             cin>>str[i];
51          } 
52          for(int i=0;i<n;i++)
53          {
54              int num=0;
55              for(int k=0;k<7;k++)
56                  num += (int)(str[i][k] - a);
57             d[i] = num; 
58          }
59          memset(Edge,0,sizeof(Edge));
60          for(int i=0;i<n;i++)
61          {
62              for(int j=i+1;j<n;j++)
63              {
64                      int temp = 0;
65                      for(int k=0;k<7;k++)
66                      {
67                          temp += str[i][k]!=str[j][k];
68                      }
69                      Edge[i][j] = Edge[j][i] = temp;
70              }
71          }
72          memset(dist,INF,sizeof(dist));
73          prim();
74          
75     }
76     
77      
78     return 0;
79 }

 

技术分享图片

 

POJ 1789 -- Truck History(Prim)

标签:class   log   char   ret   分享   prim   his   技术   bsp   

原文地址:https://www.cnblogs.com/yxh-amysear/p/8592010.html

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