bzoj3211 花神遊歷各國

2021-07-05 12:02:58 字數 1109 閱讀 5926

其實這是一道sb題……

哦不其實是兩道2333333(還有3038也是同一題)

然而在寫3038的時候由於資料太水直接就a掉了。。。

剛剛拿之前的code交上去就wa啦。。。

不能判斷區間和是否==r-l+1因為會出現0……所以要開多乙個東西表示這個區間還有多少個數不會再改變了

每個數可以開方的次數是很小的,就當做是常數非常小的o(

logn

) 吧

這樣複雜度就是o(

nlog2n

)

#include 

#define lc (u << 1)

#define rc (u << 1 | 1)

#define t int u = 1 , int l = 1 , int r = n

#define l lc , l , m

#define r rc , m + 1 , r

#define rep(i,a,b) for(int i = a;i <= b;i ++)

#define maxn 100007

typedef long

long ll;

ll rd()

ll sum[maxn * 4 + 1] , cnt[maxn * 4 + 1] , a[maxn];

ll n , m , ql , qr;

void build(t)

int m = (l + r) >> 1;

build(l) , build(r);

sum[u] = sum[lc] + sum[rc];

cnt[u] = cnt[lc] + cnt[rc];

}void modi(t)

int m = (l + r) >> 1;

if (ql <= m) modi(l);

if (qr > m) modi(r);

sum[u] = sum[lc] + sum[rc];

cnt[u] = cnt[lc] + cnt[rc];

}ll que(t)

void input()

void solve()

}int main()

BZOJ3211 花神遊歷各國

3211 花神遊歷各國 time limit 5 sec memory limit 128 mb submit 1144 solved 416 submit status discuss description input output 每次x 1時,每行乙個整數,表示這次旅行的開心度 sample...

bzoj 3211 花神遊歷各國

每次x 1時,每行乙個整數,表示這次旅行的開心度 4 1 100 5 5 51 1 2 2 1 2 1 1 2 2 2 3 1 1 4 10111 11對於100 的資料,n 100000,m 200000 data i 非負且小於10 9 對於這個開方,一開始yy了好久,後來發現,10 9的數頂多...

bzoj3211花神遊歷各國

description input output 每次x 1時,每行乙個整數,表示這次旅行的開心度 sample input 1 100 5 5 1 1 2 2 1 2 1 1 2 2 2 3 1 1 4 sample output hint 對於100 的資料,n 100000,m 200000 ...