AcWing-148 合并果子

【贪心】构造Huffman树的总费用/合并果子

用数组足够

#include <stdio.h>
#include <stdlib.h>

int compare(const void*a,const void*b)
{
    return(*(int*)a-*(int*)b);
}
int main()
{
    int n;
    scanf("%d",&n);
    int *num=(int *)malloc(2*n*sizeof(int));
    int i,j;
    for(i=0; i<n; i++)
    {
        scanf("%d",num+i);
    }
    qsort(num,n,sizeof(int),compare);
    for(i=0; i<n-1; i++)
    {
        num[n+i]=num[2*i]+num[2*i+1];
        qsort(num+2*i+2,n-i-1,sizeof(int),compare);
    }
    for(j=2*i; j<=n+i-1; j++)
    {
        printf("%d ",num[j]);
    }
    return 0;
}

 

 

posted @ 2019-12-09 21:41  今天你AC了吗  阅读(156)  评论(0编辑  收藏  举报