POJ 1862 Stripies 貪心 優先佇列

2022-08-21 01:21:13 字數 511 閱讀 2644

題目大意:

有一種生物能兩兩合併,合併之前的重量分別為m1和m2,合併之後變為2*sqrt(m1*m2),現在給定n個這樣的生物,求合併成乙個的最小重量

思路:m1+m2 >=  2*sqrt(m1*m2)  

所以每次取大的去合併,能變小。

直接優先佇列就可以啦。

#include#include#includeusing namespace std;

priority_queueq;

int main()

void push(double x)

void pop()

void matain(int hole)

data[hole] = x; }

double top()

bool empty()

};int main()

{ int n;

while(~scanf("%d",&n))

{ heap q;

for(int i=0;i

題解 POJ 1862 Stripies 貪心

我們的化學生物學家已經發明了一種新的非常有用的生命形式 條紋 實際上,它們最初在俄語中被稱為polosatiki,但科學家們不得不發明乙個英文名字來申請一項國際專利 條紋是一種透明無定形的阿公尺巴形生物,生活在果凍狀的營養培養基中。大多數時候,條紋是移動的。當它們中的兩個碰撞時,乙個新的stripi...

poj 1862 還是哈夫曼思想貪心

題意 科學家發現一種奇怪的玩意,他們有重量wi,如果他們碰在一起,總重變成2 sqrt t1 t2 要求出最終的重量的最小值。思路 果然a題多點經驗就用上了,跟農夫鋸木頭那個乙個思路,哈夫曼思想,把所有重量放堆裡,每次取倆最小的處理再放堆裡,最後堆剩下的最後元素就是答案了 include inclu...

POJ2833,The Average(優先佇列)

突破口 開兩個優先佇列q ma,q mi,前者維護前n1個最大的數,後者維護後n2個最小的數。原本打算用乙個優先佇列儲存資料,但是如果全部都存的話會爆記憶體,而且還可能會超時,然後就想能不能用乙個優先佇列來存n n1 n2 個數就好 因為最終有效的資料個數就只有n n1 n2 個 這樣就不會爆記憶體...