POJ - 3253 Fence Repair(贪心)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了POJ - 3253 Fence Repair(贪心)相关的知识,希望对你有一定的参考价值。
题目链接: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(贪心)的主要内容,如果未能解决你的问题,请参考以下文章