線段樹 bzoj3211 花神遊歷各國

2021-08-17 07:41:11 字數 1071 閱讀 4172

bzoj3211: 花神遊歷各國

因為開方的話開不了幾次就變成1了

所以用乙個mx標記一下最大值 如果最大值<=1 這個區間就根本不用開方了

原來用了lazy結果跑得跟dfs一樣

拍了一早上愣是找不到差異hhh

真是令人窒息的操作

~~我mx不開longlongbzoj居然能過但是luogu卡了很久~~

#include 

#include

#include

#include

using namespace std;

struct node

tr[210000];

int len=0;

long long data[110000];

void br(int l,int r)

else

}void change(int

x,int l,int r)

int mid=(tr[x].l+tr[x].r)/2;

intlc=tr[x].lc,rc=tr[x].rc;

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

else

if (l>mid) change(rc,l,r);

else

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

tr[x].mx=max(tr[lc].mx,tr[rc].mx);

}long long find(int

x,int l,int r)

int mid=(tr[x].l+tr[x].r)/2;

intlc=tr[x].lc,rc=tr[x].rc;

if (r<=mid) return find(lc,l,r);

else

if (l>mid) return find(rc,l,r);

else

}int main()

if (u==2) change(1,x,y);

else

if (u==1)

}return

0;}

花神遊歷各國 bzoj3211 線段樹

有乙個n個數的序列a,請寫乙個程式完成下列操作 1 l r表示查詢l到r的和 2 l r表示把每個a x l x r 變為sqrt x n 100000,m 100000 其實我是偶然看過冪偉的題解的 滑稽 109 最多開根6次就變成1了,對於1無論怎樣開根都是不影響的 兩種做法。如果是樹狀陣列的話...

bzoj3211 花神遊歷各國 線段樹

題目大意 維護乙個長度為n的序列,支援一下兩個操作 1 區間開根號 向下取整 2 區間求和。n 100000,m 200000,序列中的數 10 9且為非負整數。題目分析 都這個逼樣了還來刷水,我是心大還是腦子進屎呢t t 時間複雜度o nlogn 對於所有數修改次數最多不超過5n次,每次修改時間複...

BZOJ 3211 花神遊歷各國(線段樹)

time limit 5 sec memory limit 128 mb submit 3476 solved 1288 submit status discuss 每次x 1時,每行乙個整數,表示這次旅行的開心度 4 1 100 5 5 51 1 2 2 1 2 1 1 2 2 2 3 1 1 4...