POJ 3253

注意一下数据的申明就好 很简单的哈弗曼树

#include<stdio.h>
#define MAXN 20000
main()
{
int a[MAXN],i,n,maii1,maii2,l,k,t;
__int64 ans=0;
scanf("%d",&n);
for(i=0;i<n;i++)
    {
scanf("%d",&a[i]);
    }
    for(;n>1;n--){
    maii1=0;
    maii2=1;
    if(a[maii1]>a[maii2])
    {
l=a[maii1];
a[maii1]=a[maii2];
a[maii2]=l;
}
for(k=2;k<n;k++)
    {
if(a[k]<a[maii1])
{
maii2=maii1;
maii1=k;
    }
else if(a[k]<a[maii2])
{
maii2=k;
    }
}
t=a[maii1]+a[maii2];
ans+=t;
a[maii1]=t;
a[maii2]=a[n-1];
}
    printf("%I64d\n",ans);

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值