洛谷P2827 蚯蚓 佇列 觀察

2021-09-02 07:33:19 字數 780 閱讀 1593

我們不難發現先被切開的兩半一定比後被切開的兩半大,這樣就天然的生成了佇列的單調性,就可以省去乙個log。所以,我們開三個佇列,分別為or

igin

,big

,sma

ll,每次查詢時將三個佇列的對頭進行比較即可。

code:

#include

#include

#include

#include

using namespace std;

const

int maxn =

500000+4

;bool cmp

(int i,

int j)

struct node};

queue small, big;

queue<

int>origin;

priority_queue<

int> fin;

int val[maxn]

;int

main()

printf

("\n");

while

(!origin.

empty()

)while

(!small.

empty()

)while

(!big.

empty()

)int cnt =0;

while

(!fin.

empty()

)return0;

}

洛谷P2827 蚯蚓

本題中,我們將用符號 lfloor c rfloor 表示對 c 向下取整,例如 lfloor 3.0 rfloor lfloor 3.1 rfloor lfloor 3.9 rfloor 3 蛐蛐國最近蚯蚓成災了!隔壁跳蚤國的跳蚤也拿蚯蚓們沒辦法,蛐蛐國王只好去請神刀手來幫他們消滅蚯蚓。蛐蛐國裡現...

洛谷P2827 蚯蚓 單調佇列

初始時有 n 個蚯蚓,每個長度為 a i 有 m 個時間,每個時間點找出長度最大的蚯蚓,把它切成兩段,分別為 a i p 和 a i a i p 除這兩段外其他的長度都加乙個定值 q 每次詢問被蚯蚓被切前的長度 用堆模擬可獲得 50 85 不等的分數。蚯蚓的長度有單調性。然後這題就做完了。首先把 a...

洛谷p2827蚯蚓題解

題目 演算法標籤裡的演算法什麼的都不會啊 什麼二叉堆?qbxt出去學習的時候講的,一段時間之前做的,現在才寫到部落格上的 維護3個佇列,佇列1表示最開始的蚯蚓,佇列2表示每一次被切的蚯蚓被分開的較長的那一部分,佇列3表示每一次被切的蚯蚓被分開的較短的那一部分。我們先把原序列排序,因為不管怎麼切,先被...