P1792 貪心 優先佇列

2021-10-10 05:13:17 字數 1029 閱讀 2908

題意

傳送門 p1792 [國家集訓隊]種樹

題解p1484 種樹的環版本。貪若心地取權值最大的位置種樹,可能出現取相鄰位置種樹更優的情況。設位置 i

ii 的權值為 p

ip_i

pi​,那麼每次貪心選擇後,若 ppr

e[i]

+pnx

t[i]

>pi

p_+p_>p_i

ppre[i

]​+p

nxt[

i]​>pi

​,應該取消位置 i

ii 的選擇,而選擇相鄰位置,此時保證總選擇位置數量增加 1

11。那麼每次將 i

ii 處權值賦為 ppr

e[i]

+pnx

t[i]

−p

ip_+p_-p_i

ppre[i

]​+p

nxt[

i]​−

pi​ 後加入優先佇列,並刪除相鄰節點。

#include

#include

#include

#include

#include

using

namespace std;

#define maxn 200005

struct node};

int n, m, a[maxn]

;int pre[maxn]

, nxt[maxn]

, del[maxn]

;priority_queue q;

intmain()

);} pre[1]

= n, nxt[n]=1

;if(m > n /2)

int res =0;

for(

int i =

0; i < m;

++i));

}printf

("%d\n"

, res)

;return0;

}

P1792 國家集訓隊 種樹

題目描述 a城市有乙個巨大的圓形廣場,為了綠化環境和淨化空氣,市 決定沿圓形廣場外圈種一圈樹。園林部門得到指令後,初步規劃出n個種樹的位置,順時針編號1到n。並且每個位置都有乙個美觀度ai,如果在這裡種樹就可以得到這ai的美觀度。但由於a城市土壤肥力欠佳,兩棵樹決不能種在相鄰的位置 i號位置和i 1...

優先佇列貪心

最近做了幾個用優先佇列進行貪心的題目,這裡寫下來,以免忘了。1 cf 799 b 每次選最便宜的衣服,沒什麼好說的,一發過 include include include include include define n 6005 define inf 0x3f3f3f3f include incl...

貪心加優先佇列

消滅兔子 李陶冶 命題人 基準時間限制 1 秒 空間限制 131072 kb 分值 40 有n只兔子,每只有乙個血量b i 需要用箭殺死免子。有m種不同型別的箭可以選擇,每種箭對兔子的傷害值分別為d i 為p i 1 i m 假設每種箭只能使用一次,每只免子也只能被射一次,計算要消滅地圖上的所有兔子...