BZOJ 1012之線段樹解法

2021-07-24 18:38:34 字數 864 閱讀 6329

根據題意,很容易想到線段樹,單點修改,區間查詢,線段樹的模板大家都有,所以就不再做過多解釋。不過有一點值得一提,在我做這道題的時候使用了cin和cout,後來隊友告訴我,bzoj使用了o2優化,使用cin和cout可能會報錯,果然,我改了cin和cout之後就沒有問題了。

#include #include using namespace std;

long long min1[2000005],d;

void push_up(long long rt)

void build(long long l,long long r,long long rt)

long long query(long long l,long long r,long long l,long long r,long long rt)

long long mid=(l+r)>>1;

long long ans=-100000000;

if(l<=mid)ans=max(ans,query(l,r,l,mid,rt<<1));

if(r>mid)ans=max(ans,query(l,r,mid+1,r,rt<<1|1));

return ans;

}int main()

{ for(long long i=0;i<=1000000;i++)

min1[i]=0;

long long m;

char s[10];

scanf("%lld %lld",&m,&d);

build(1,240005,1);

long long t=0;

long long l;

long long n=0;

for(long long i=0;i

bzoj 1012 簡單的線段樹

time limit 3 sec memory limit 162 mb submit 4273 solved 1918 submit status 現在請求你維護乙個數列,要求提供以下兩種操作 1 查詢操作。語法 q l 功能 查詢當前數列中末尾l個數中的最大的數,並輸出這個數的值。限制 l不超過...

bzoj1012(線段樹模板題)

題目讀了三遍才讀懂,對於蒟蒻來說,看上去很難得樣子,實際就是線段樹的單點更新,然後求區間最值,無奈之前還想著怎麼建樹插進去。結果re n次,感覺自己水的一匹,唉 做題效率極低。真是被自己蠢哭了 include include include include include pragma warnin...

BZOJ 1012 線段樹 單調佇列

非常裸的線段樹 單調佇列 假設乙個節點在佇列中既沒有時間優勢 早點入隊 也沒有值優勢 值更大 那麼顯然不管在如何的情況下都不會被選為最大值。既然它僅僅在末尾選。那麼自然能夠滿足以上的條件。線段樹 include stdio.h include string.h struct node data 80...