本文主要是介绍蓝桥杯huffuman树,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
思路是首先把得到的数组进行排序,这里使用插入法排序,然后用s存放最小的两个数字之和(即为费用Pa+Pb),在数组元素第二小的地址上存放最小两数值和,最小一位清零,循环结束时s即为最终费用。
#include"stdio.h"
int main(){int n,i,t,tt,j,x=0,s=0;scanf("%d",&n);int a[n];for(i=0;i<n;i++){scanf("%d",a+i);}for(t=0;t<n-1;t++){for(i=1;i<n;i++){//给数组从小到大排序 (插入法) tt=a[i];for(j=i;tt<a[j-1];j--){a[j]=a[j-1];}a[j]=tt;}s+=a[x]+a[x+1];//s为最小两位之和 a[x+1]+=a[x];//第二小的位置上存放最小两数之和 a[x]=0;// 最小一位清零 x++;}printf("%d",s);return 0;
}
这篇关于蓝桥杯huffuman树的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!