XTU1262 優先佇列

2021-08-18 09:09:06 字數 621 閱讀 9352

使用優先佇列模擬一下就可以了,但是需要注意進行優化,題目有b=0的情況,也就是說無論如何撈魚都不會變,這種情況需要直接優化掉,不能進行模擬,否則會超時。

#include 

#define ll long long

#define up(i,l,h) for(int i=l;i#define down(i,h,l) for(int i=h-1;i>=l;i--)

#define w(t) while(t)

#define mem(a,b) memset(a,b,sizeof(a))

#define inf 0x3f3f3f3f

#define cout(x) coutnamespace

std;

struct node

node(){}

bool

operator

< (const node nb) const

int ans=0;

w(!pq.empty()&&(m--))

if(nd.a-nd.b>0) pq.push(node(nd.a-nd.b,nd.b));

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

}}

bjfu1262 優先佇列

比較典型的應用優先佇列的題。題目是在乙個長為n的陣列中,依次問m個數中的最小值。那麼把值和下標做成乙個結構體,放進優先佇列裡,每次移動視窗就把該t的t掉,剩下的最小值就是答案,複雜度nlogn,輕鬆ac。author ben include include include include inclu...

HAUTOJ 1262魔法寶石 優先佇列

題目鏈結 比賽場上是暴力懟過去的,回來補題學了個優先佇列的想法 因為寶石的合成情況可能有巢狀,比如1和2生成3,1和3生成2,2和3生成1,如果用dp去做的話,那麼就會形成乙個迴路,就沒辦法當做樹形dp搞了 所以我們要想到,如果出現了某個生成環,那麼其環三個元素中,魔力值最小的那個一定不可被更新,所...

優先佇列(3道優先佇列問題)

優先佇列是一種十分強大的資料結構,它保持了一種動態的有序性,對於不斷改變有入隊的操作,而又需要某種最大或最小的操作的問題是再合適不過了,通常優先佇列的實現是由最小堆或者最大堆完成的,並通過堆排序保持佇列的有序性,模擬佇列的結構,在實際比賽中要寫乙個堆排序還是要一定的時間的,但是stl中queue容器...