BZOJ4372 爍爍的遊戲 動態點分治

2022-05-09 14:21:09 字數 2323 閱讀 9935

背景:爍爍很喜歡爬樹,這嚇壞了樹上的皮皮鼠。

題意:給定一顆n個節點的樹,邊權均為1,初始樹上沒有皮皮鼠。

爍爍他每次會跳到乙個節點u,把周圍與他距離不超過d的節點各吸引出w只皮皮鼠。皮皮鼠會被爍爍吸引,所以會一直待在節點上不動。

爍爍很好奇,在當前時刻,節點u有多少個他的好朋友---皮皮鼠。

大意:給一顆n個節點的樹,邊權均為1,初始點權均為0,m次操作:

q x:詢問x的點權。

m x d w:將樹上與節點x距離不超過d的節點的點權均加上w。

第一行兩個正整數:n,m

接下來的n-1行,每行三個正整數u,v,代表u,v之間有一條邊。

接下來的m行,每行給出上述兩種操作中的一種。

對於每個q操作,輸出當前x節點的皮皮鼠數量。

7 61 2

1 41 5

2 32 7

5 6m 1 1 2

q 5m 2 2 3

q 3m 1 2 1

q 2236

和震波很像,查詢修改反過來就好了。

**:

1 #include2 #include3 #include4

const

int n=100010;5

struct

pntp[n];

17struct

trnttr[40000000

];22

struct

ente[n<<1

];26

intn,m;

27int

cnt;

28int

siz;

29int

root;

30int

size;

31int

maxsize;

32char cmd[1000

];33

void ade(int f,int

t)34

41void basic_dfs(int x,int

f)4259}

60return;61

}62void build_dfs(int x,int

top)

6375

return;76

}77int lca(int x,int

y)78

85if(p[x].dis>p[y].dis)

86std::swap(x,y);

87return

x;88}89

int dis(int x,int

y)90

94void grc_dfs(int x,int

f)95

108 maxs=std::max(maxs,size-p[x].wgt);

109if(maxs110114

return

;115

}116

void bin_dfs(int x,int

f)117

135return

;136

}137

void update(int &spc,int l,int r,int ll,int rr,int

v)138

148int mid=(l+r)>>1

;149

update(tr[spc].ls,l,mid,ll,rr,v);

150 update(tr[spc].rs,mid+1

,r,ll,rr,v);

151return

;152

}153

int query(int spc,int l,int r,int

pos)

154167

void update(int x,int k,int

val)

168178

return

;179

}180

int query(int

x)181

188return

ans;

189}

190int

main()

191200 basic_dfs(1,1

);201 build_dfs(1,1

);202 root=0

;203 size=n;

204 maxsize=0x3f3f3f3f

;205 grc_dfs(1,1

);206 bin_dfs(root,0

);207

while(m--)

208else

220}

221return0;

222 }

BZOJ4372 爍爍的遊戲

背景 爍爍很喜歡爬樹,這嚇壞了樹上的皮皮鼠。題意 給定一顆n個節點的樹,邊權均為1,初始樹上沒有皮皮鼠。爍爍他每次會跳到乙個節點u,把周圍與他距離不超過d的節點各吸引出w只皮皮鼠。皮皮鼠會被爍爍吸引,所以會一直待在節點上不動。爍爍很好奇,在當前時刻,節點u有多少個他的好朋友 皮皮鼠。大意 給一顆n個...

BZOJ 4372 爍爍的遊戲

背景 爍爍很喜歡爬樹,這嚇壞了樹上的皮皮鼠。題意 給定一顆n個節點的樹,邊權均為1,初始樹上沒有皮皮鼠。爍爍他每次會跳到乙個節點u,把周圍與他距離不超過d的節點各吸引出w只皮皮鼠。皮皮鼠會被爍爍吸引,所以會一直待在節點上不動。爍爍很好奇,在當前時刻,節點u有多少個他的好朋友 皮皮鼠。大意 給一顆n個...

BZOJ 4372 爍爍的遊戲 動態點分治

time limit 30 sec memory limit 512 mb submit 804 solved 288 submit status discuss 背景 爍爍很喜歡爬樹,這嚇壞了樹上的皮皮鼠。題意 給定一顆n個節點的樹,邊權均為1,初始樹上沒有皮皮鼠。爍爍他每次會跳到乙個節點u,把周...