其實這是一道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 ...