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

POJ - 3253 Fence Repair(贪心)

时间:2017-05-29 09:53:54      阅读:136      评论:0      收藏:0      [点我收藏+]

标签:--   链接   lan   路径   clu   str   ble   swap   main   

题目链接:http://poj.org/problem?id=3253

题意:哈夫曼最优编码

贪心策略:尽可能让花费大的路径短。

总花费=每个花费*路径之和。也等于每次加上去得到的数之和。(每次都排序一下,把最小的两个相加)

 1 #include <iostream>
 2 #include <algorithm>
 3 using namespace std;
 4 
 5 typedef long long LL;
 6 const int maxn=20000+10;
 7 int L[maxn];
 8 
 9 int main(){
10     int N;
11     cin>>N;
12     for(int i=0;i<N;i++) cin>>L[i];
13     LL ans=0;
14     while(N>1){
15         int temp1=0,temp2=1;
16         if(L[temp1]>L[temp2]) swap(temp1,temp2);
17         for(int i=2;i<N;i++){
18             if(L[i]<L[temp1]){
19                 temp2=temp1;
20                 temp1=i;
21             }
22             else if(L[i]<L[temp2]){
23                 temp2=i;
24             }
25         }
26         int t=L[temp1]+L[temp2];
27         ans+=t;
28         L[temp1]=t;
29         L[temp2]=L[N-1];
30         N--;
31     }
32     cout<<ans<<endl;
33     return 0;
34 }

 

POJ - 3253 Fence Repair(贪心)

标签:--   链接   lan   路径   clu   str   ble   swap   main   

原文地址:http://www.cnblogs.com/Leonard-/p/6917137.html

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