根據題意,很容易想到線段樹,單點修改,區間查詢,線段樹的模板大家都有,所以就不再做過多解釋。不過有一點值得一提,在我做這道題的時候使用了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...