線段樹 天才紳士少女助手克里斯蒂娜

2022-05-27 19:12:11 字數 1330 閱讀 9678

又是線段樹……應該是近期寫的第五道線段樹

這道題的難點在於式子推導,雖然我並不會自己推,但是可以證明正確性:∑l

於是就可以維護三個線段樹,表示三個式子,直接寫線段樹就好了,唯一需要注意的地方就是取模,為了避免負數,我們可以寫成 也有必要寫成(x%mod+mod)%mod,不然輸出不正確,最後記得開long long

**:

1 #include 2 #include 3 #include 4
using

namespace

std;

5#define ll long long

6ll n,m;

7const

int maxn=1e7;

8 ll mod=20170927

;9 ll x0[maxn],y0[maxn],tree[5

][maxn],mark,p,x1,y1,l,r;

10 inline ll ls(ll x)

11 inline ll rs(ll x)

12 inline void

pushup(ll x)

15 inline void

build(ll x,ll l,ll r)

19 ll mid=(l+r)>>1

;20 build(ls(x),l,mid);build(rs(x),mid+1

,r);

21pushup(x);

22//

for (int i = 1;i <= 3;i++) cout<23

}24 inline void

update(ll x,ll l,ll r,ll pos,ll x1,ll y1)

28 ll mid=(l+r)>>1;29

if (pos<=mid) update(ls(x),l,mid,pos,x1,y1);

30if (pos>mid) update(rs(x),mid+1

,r,pos,x1,y1);

31pushup(x);32}

33inline ll query(ll x,ll l,ll r,ll nl,ll nr,ll num)

41int

main()

51else59}

60return0;

61 }

天才紳士少女助手克里斯蒂娜 推柿子

pdf往下翻突然看見乙個克里斯蒂娜 感覺就像人群當中突然鑽出來乙個光頭 sum limits 2 2 sum limits 2 2 sum limits x i y i sum limits 2 sum limits 2 sum limits 2 2 2 sum limits 2 2 2 sum l...

BZOJ 4399 魔法少女LJJ 線段樹

傳送門 出題人真會玩。操作 2 線段樹合併,然後每棵線段樹維護元素個數和。對於 6 這個詢問,因為乘積太大,所以要用對數。時間複雜度 o nlogn include include include include includeusing namespace std const int n 4000...

BZOJ 4399 魔法少女LJJ 線段樹合併

題目大意 第一行有乙個正整數m,表示操作個數。接下來m行,每行先給出1個正整數c。若c 1,之後乙個正整數x,表示新建乙個權值為x的節點,並且節點編號為n 1 當前有n個節點 若c 2,之後兩個正整數a,b,表示在a,b之間連線一條邊。若c 3,之後兩個正整數a,x,表示a聯通塊內原本權值小於x的節...