codevs 1063 合併果子(小根堆)

2021-09-25 20:43:53 字數 431 閱讀 2910

分析這道題考查的是堆,我們首先取出兩個最小的數,合併然後再加入到堆中,並調整堆結構,因為取的是最小的數,所以採用小根堆,這道題也可以用優先佇列來做,下面採用的是手動模擬堆的方式。

#include#include#includeusing namespace std;

#define n 10000 + 10

int heap[n],cnt;

int n,ans;

//模擬小根堆

void push(int x)//向上調整

void pop()

else break; }}

int main()

int t;

while(--n)

printf("%d\n",ans);

return 0;

}

codevs 1063 合併果子

中午一看到這題,馬上想起了能量項鍊的那個模型,即區間型的dp,完全沒有注意到n的範圍,犯了先入為主的錯誤 下午回到學校馬上就去寫這個幾乎是模板的 提交直接mle,才發現n的最大值為10000,dp n n 的大小為 10000 10000 4 bytes 乙個int為32 4 9 bits,即4個位...

Codevs 1063 合併果子

時間限制 1 s 空間限制 128000 kb 題目等級 鑽石 diamond description 在乙個果園裡,多多已經將所有的果子打了下來,而且按果子的不同種類分成了不同的堆。多多決定把所有的果子合成一堆。每一次合併,多多可以把兩堆果子合併到一起,消耗的體力等於兩堆果子的重量之和。可以看出,...

codevs 1063 合併果子

1063 合併果子 2004年noip全國聯賽普及組 時間限制 1 s 空間限制 128000 kb 題目等級 鑽石 diamond description 在乙個果園裡,多多已經將所有的果子打了下來,而且按果子的不同種類分成了不同的堆。多多決定把所有的果子合成一堆。每一次合併,多多可以把兩堆果子合...