XDU 1156 等待佇列 (線段樹 單調佇列)

2021-07-11 11:46:11 字數 1117 閱讀 9957

此處有

目錄↑時間限制: 

1 sec  

記憶體限制: 

128 mb

[提交][

狀態][

討論版]

對於每個第 3 類操作,輸出 1 行,表示佇列中所有人不耐煩程度的最大值。

8

1 51 5

1 5323

1 20

3

8

921

比賽時一眼看出線段樹能做,特別激動,第一次用上線段樹了...

線段樹維護區間最大值即可

初始化乙個區間為[1,n]的線段樹,操作1在點tail處新增,操作2直接修改查詢區間(head++)即可,操作3直接查詢[head,n]的區間最大值

看了題解以後發現可以用單調佇列寫,暫時先放著吧...

#include #include #define lson (i<<1)

#define rson ((i<<1)|1)

using namespace std;

const int inf=0x3f3f3f3f;

int n,ope,x,head,tail,l,r;

struct node tr[400005];

void build(int i,int l,int r)

void modify(int i)

if(l<=tr[lson].r)

modify(lson);

else

modify(rson);

tr[i].mx=max(tr[lson].mx,tr[rson].mx);

}int query(int i)

int mx=-inf;

if(l<=tr[lson].r)

mx=max(mx,query(lson));

if(tr[rson].l

官方題解:

待完成

XDOJ1156 等待佇列

題意 大概就是有三種操作吧,第一種在佇列後面加入新人,引入乙個不耐煩程度,第二種第乙個人出隊 直接讓頭結點的序號 1即可 第三種統計在隊伍裡面不耐煩程度最高的數 ps 隨著操作的進行佇列中每乙個人的不耐煩程度 1 剛開始我是將每個節點加入線段樹中,對於每個操作,打上lazy標記,用線段樹區間維護,然...

XDOJ1156 等待佇列

題意 大概就是有三種操作吧,第一種在佇列後面加入新人,引入乙個不耐煩程度,第二種第乙個人出隊 直接讓頭結點的序號 1即可 第三種統計在隊伍裡面不耐煩程度最高的數 ps 隨著操作的進行佇列中每乙個人的不耐煩程度 1 剛開始我是將每個節點加入線段樹中,對於每個操作,打上lazy標記,用線段樹區間維護,然...

Selenium筆記(6)等待

1.簡介 在selenium操作瀏覽器的過程中,每一次請求url,selenium都會等待頁面載入完畢以後,才會將操作許可權再次交給我們的程式。但是,由於ajax和各種js 的非同步載入問題,所以我們在使用selenium的時候常常會遇到操作的元素還沒有載入出來,就會引發報錯。為了解決這個問題,se...