XDOJ1156 等待佇列

2021-08-02 12:17:13 字數 1318 閱讀 1755

題意:大概就是有三種操作吧,第一種在佇列後面加入新人,引入乙個不耐煩程度,第二種第乙個人出隊(直接讓頭結點的序號+1即可),第三種統計在隊伍裡面不耐煩程度最高的數(ps:隨著操作的進行佇列中每乙個人的不耐煩程度+1),剛開始我是將每個節點加入線段樹中,對於每個操作,打上lazy標記,用線段樹區間維護,然後tle了,改了又改,在室友的提醒下,原來我可以把每個加入的節點都統一在第乙個節點時插入,只要保證取最大就行,每次執行操作三,選出最大的,然後加上輸入第幾個操作即可,本來很水的一道題,硬是寫了這麼久,還是太菜了233333333,直接貼**了;

#include#include#include#include#include#include#include#include#include#include#define n 400005

#define inf 0x3f3f3f3f

using namespace std;

typedef struct node node;

node a[4*n];

void built(int root,int first,int end)

int mid=(first+end)/2;

built(root*2,first,mid);

built(root*2+1,mid+1,end);

a[root].x=a[root*2].x;

a[root].y=a[root*2+1].y;

a[root].date=0;

a[root].ma=0;

}void q(int root,int first,int end,int e,int p)

int mid=(first+end)/2;

if(e<=mid) q(2*root,first,mid,e,p);

else q(2*root+1,mid+1,end,e,p);

a[root].date=max(a[root*2].date,a[root*2+1].date);

}int sum;

void m(int root,int first,int end,int r,int l)

int mid=(first+end)/2;

if(r<=mid) m(root*2,first,mid,r,l);

if(l>mid) m(root*2+1,mid+1,end,r,l);

a[root].date=max(a[root*2].date,a[root*2+1].date);

}int main() else if(n==2) else if(n==3) }}

return 0;

}

XDOJ1156 等待佇列

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

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

此處有 目錄 時間限制 1 sec 記憶體限制 128 mb 提交 狀態 討論版 對於每個第 3 類操作,輸出 1 行,表示佇列中所有人不耐煩程度的最大值。8 1 51 5 1 5323 1 20 38 921比賽時一眼看出線段樹能做,特別激動,第一次用上線段樹了.線段樹維護區間最大值即可 初始化乙...

Selenium筆記(6)等待

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