bzoj 3211 花神遊歷各國

2021-08-16 19:57:39 字數 841 閱讀 1413

這道題一開始用分塊寫,結果不知是什麼,可能寫掛了,tle。(呵呵)

之後便仔細想一想,可以用線段樹做,思路跟分塊差不多,因為這道題的開根號後是向下取整,所以經過幾次開根後這個數就變成了1或0,這樣就給它打上乙個標記,以後便不用動它,可以省很多時間。這題便就解決了。

#include

#include

#include

#include

#include

using namespace std;

struct node

}tr[210000];int trlen;

int n,m;long long a[110000];

void bt(int l,int r)

else

}long long getsum(int now,int l,int r)

void change(int now,int l,int r)

intlc=tr[now].lc,rc=tr[now].rc,mid=(tr[now].l+tr[now].r)/2;

if(r<=mid)change(lc,l,r);

else

if(mid+1

<=l)change(rc,l,r);

else change(lc,l,mid),change(rc,mid+1,r);

tr[now].c=tr[lc].c+tr[rc].c;

if(tr[lc].lazy==true && tr[rc].lazy==true)tr[now].lazy=true;

}int main()

return

0;}

BZOJ3211 花神遊歷各國

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

bzoj3211 花神遊歷各國

其實這是一道sb題 哦不其實是兩道2333333 還有3038也是同一題 然而在寫3038的時候由於資料太水直接就a掉了。剛剛拿之前的code交上去就wa啦。不能判斷區間和是否 r l 1因為會出現0 所以要開多乙個東西表示這個區間還有多少個數不會再改變了 每個數可以開方的次數是很小的,就當做是常數...

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的數頂多...