hdu1280 前m大的數(優先佇列)

2021-07-23 15:01:20 字數 452 閱讀 9722

題目大意:給n個數,求出所有兩兩相加的數,然後輸出這些數中的前m大個(從大到小排列)

解題思路:使用小數優先的有限佇列,維持佇列的元素數量始終等於m,每當讀取到乙個數比隊頭大時就讓這個數入隊,同時將隊頭元素出隊,保證元素個數為m,將所有數字掃瞄一遍過後即得到前m大個數,但是由於在佇列中是從小到大排列的,需要將所有元素取出後反向輸出

ac**:

#include #include using namespace std;

struct comp2//降序排列

};priority_queue,comp2>q2;

int main()

for(int i=0;iq2.top())

{q2.push(temp);

if(q2.size()>m)q2.pop();

//cout<=0;i--)

{if(i==index-1)cout<

hdu 1280 前m大的數

背景 週末練習賽c題 學習 1.把乙個陣列裡的元素兩兩相加,類似於范德蒙行列式,用兩個迴圈可完成。2.輸出最後乙個數後面沒有空格要單獨輸出。3.把陣列開在全域性,可以避免爆棧,因為全域性變數不管是不是靜態的都儲存在記憶體靜態資料區。include include using namespace st...

HDU1280 前m大的數

還記得gardon給小希布置的那個作業麼?上次比賽的1005 其實小希已經找回了原來的那張數表,現在她想確認一下她的答案是否正確,但是整個的答案是很龐大的表,小希只想讓你把答案中最大的m個數告訴她就可以了。給定乙個包含n n 3000 個正整數的序列,每個數不超過5000,對它們兩兩相加得到的n n...

HDU 1280 前m大的數

description 還記得gardon給小希布置的那個作業麼?上次比賽的1005 其實小希已經找回了原來的那張數表,現在她想確認一下她的答案是否正確,但是整個的答案是很龐大的表,小希只想讓你把答案中最大的m個數告訴她就可以了。給定乙個包含n n 3000 個正整數的序列,每個數不超過5000,對...