bzoj_3343_教主的魔法_分塊+二分查詢
題意:教主最近學會了一種神奇的魔法,能夠使人長高。於是他準備演示給xmyz資訊組每個英雄看。於是n個英雄們又一次聚集在了一起,這次他們排成了一列被編號為1、2、……、n。每個人的身高一開始都是不超過1000的正整數。教主的魔法每次可以把閉區間[l, r](1≤l≤r≤n)內的英雄的身高全部加上乙個整數w。(雖然l=r時並不符合區間的書寫規範,但我們可以認為是單獨增加第l(r)個英雄的身高)詢問wd閉區間 [l, r] 內有多少英雄身高大於等於c,以驗證教主的魔法是否真的有效。
分析:分塊。
每一塊用乙個輔助陣列來排序,詢問時整塊二分查詢大於等於c的位置,零散的暴力重構。
重構時可以歸併也可以直接sort
**:
#include #include #include #include using namespace std;#define n 1000010
#define ll long long
void read(ll &x)
while(s>='0'&&s<='9')
x*=f;
}int l[1010],r[1010],pos[n],t,is[1010],add[1010],n,q;
ll a[n],b[n];
int find(int blo,ll x)else
for(int i=l[q];i<=r;i++)
}return ans;
}char op[10];
int main()
}if(n-t*t)
}for(int i=1;i<=t;i++)pre(i);
int x,y,z;
while(q--)else
}}
bzoj 3343 教主的魔法
qaq這題wa了四遍 dqs學長快打死我了 qaq 我錯了 等我慢慢賺回ac率 qaq 果然我這種弱渣還是不要打許可權題了 分塊 塊內進行排序,查詢的時候就lower bound l,r,v add l m 記得另開乙個陣列記錄排序後都是啥,因為用到這個陣列的話都是在同乙個塊內,所以說不用記錄它在 ...
bzoj 3343 教主的魔法
time limit 10 sec memory limit 256 mb submit 874 solved 383 submit status discuss 教主最近學會了一種神奇的魔法,能夠使人長高。於是他準備演示給xmyz資訊組每個英雄看。於是n個英雄們又一次聚集在了一起,這次他們排成了一...
bzoj 3343 教主的魔法
3343 教主的魔法 time limit 10 sec memory limit 256 mb submit 1062 solved 466 submit status discuss description 教主最近學會了一種神奇的魔法,能夠使人長高。於是他準備演示給xmyz資訊組每個英雄看。於...