BZOJ 3211 花神遊歷各國 線段樹平方開根

2022-07-17 10:57:12 字數 1985 閱讀 5212

題目大意:

思路:由於資料範圍只有1e9,乙個數字x開根號次數超過logx之後均為1,所以可以暴力開根號,但是需要剪枝優化,如果子樹的max小於等於1,那麼直接跳過即可。否則遞迴到葉子節點暴力開根號。

1 #include2

#define ios ios::sync_with_stdio(false);//

不可再使用scanf printf

3#define max(a, b) ((a) > (b) ? (a) : (b))//

禁用於函式,會超時

4#define min(a, b) ((a) < (b) ? (a) : (b))

5#define mem(a) memset(a, 0, sizeof(a))

6#define dis(x, y, x1, y1) ((x - x1) * (x - x1) + (y - y1) * (y - y1))

7#define mid(l, r) ((l) + ((r) - (l)) / 2)

8#define lson ((o)<<1)

9#define rson ((o)<<1|1)

10#define accepted 0

11#pragma comment(linker, "/stack:102400000,102400000")//

棧外掛程式12

using

namespace

std;

13 inline int

read()

1417

while (ch>='

0'&&ch<='9')

18return x*f;19}

2021 typedef long

long

ll;22

const

int maxn = 100000 + 10;23

const

int mod = 1000000007;//

const引用更快,巨集定義也更快

24const

int inf = 1e9 + 7;25

const

double eps = 1e-6;26

27ll a[maxn];

28struct

node

29tree[maxn<<2

];33

void build(int o, int l, int

r)34

41int m =mid(l, r);

42build(lson, l, m);

43 build(rson, m + 1

, r);

44 tree[o].mmax =max(tree[lson].mmax, tree[rson].mmax);

45 tree[o].sum = tree[lson].sum +tree[rson].sum;46}

47int

ql, qr;

48ll sum;

49void query(int

o)50

56if(ql <=tree[lson].r)query(lson);

57if(qr >=tree[rson].l)query(rson);58}

59void update(int

o)60

67if(ql <=tree[lson].r)update(lson);

68if(qr >=tree[rson].l)update(rson);

69 tree[o].mmax =max(tree[lson].mmax, tree[rson].mmax);

70 tree[o].sum = tree[lson].sum +tree[rson].sum;71}

72int

main()

7389

else

9093}94

return

accepted;

95 }

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