九度OJ教程31 哈夫曼樹之搬運水果

2021-06-12 15:41:36 字數 558 閱讀 2851

//九度oj教程31 哈夫曼樹之搬運水果 (木有優先佇列,利用兩趟簡單選擇排序來實現的演算法……c語言坑啊)

//#include #define maxs 10005

//由於c裡面沒有優先佇列,故,用簡單選擇排序兩次來模擬哈夫曼樹的帶權路徑長度……

int main()

for(i=1;i<=n;i++)scanf("%d",&h[i]);

s=a=0;

while(n>2)

a=h[k];

h[k]=h[j];

h[j--]=a;

for(i=k=1;i<=j;i++) //簡單選擇排序第二趟

a=h[k];

h[k]=h[j];

h[j]=a; //排序完成,末尾倆相加,再次進入該陣列

h[n-1]+=h[n];

s+=h[--n];

} s+=h[1]+h[2];

printf("%lld\n",s);

} return 0;

}

九度OJ1172 哈夫曼樹

題目描述 哈夫曼樹,第一行輸入乙個數n,表示葉結點的個數。需要用這些葉結點生成哈夫曼樹,根據哈夫曼樹的概念,這些結點有權值,即weight,題目需要輸出所有結點的值與權值的乘積之和。輸入 輸入有多組資料。每組第一行輸入乙個數n,接著輸入n個葉節點 葉節點權值不超過100,2 n 1000 輸出 輸出...

九度OJ 1172 哈夫曼樹

由於建立的哈夫曼樹不唯一,所以機試多考察哈夫曼樹的帶權路徑長度和,如此題。此問題最終轉化為利用堆模擬建樹過程,求出非葉節點的權值和 該哈夫曼樹的帶權路徑長度和 無需作出哈夫曼樹的具體結構體 收穫如下 關於哈夫曼樹 該樹非葉節點的權值和 該哈夫曼樹的帶權路徑長度和 關於堆排序 堆排序建堆o n log...

九度OJ 1172 哈夫曼樹

哈夫曼樹,第一行輸入乙個數n,表示葉結點的個數。需要用這些葉結點生成哈夫曼樹,根據哈夫曼樹的概念,這些結點有權值,即weight,題目需要輸出所有結點的值與權值的乘積之和。輸入有多組資料。每組第一行輸入乙個數n,接著輸入n個葉節點 葉節點權值不超過100,2 n 1000 輸出權值。5 1 2 2 ...