這樣搞,我們把序列分塊,每一塊有個標記表示這個塊被整體加了幾。
每次查詢,對於完整的塊,我們提前把裡面的元素排好序,每次只要二分一下就好了。
修改,完整的塊,直接打標記即可;對於前後那些零散的,暴力修改之後,把這個塊重新拍下序。
//分塊
#include #include #define maxn 1100000
#define maxs 2048
using namespace std;
int n, q, a[maxn], tag[maxs], tmp[maxn], size;
inline int read(int x=0)
inline char readc()
inline void init()
}inline void pushdown(int block)
inline void rebuild(int block)
inline void add(int l, int r, int w)
inline int bin(int block, int w)
return (block+1
<}inline void quiry(int l, int r, int c)
int main()
return
0;}
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資訊組每個英雄看。於...