BSOJ1470 BZOJ4372 爍爍的遊戲

2022-09-15 00:39:15 字數 1229 閱讀 5923

bsoj1470&bzoj4372 爍爍的遊戲

點分樹+線段樹

首先我們可以發現,這個和模板題的區別就是那裡是單點修改區間查詢,但是這裡是區間修改單點查詢。

具體可以見**。

#include#include#include#include#define m 100010

#define ls ch[node][0]

#define rs ch[node][1]

using namespace std;

int read()

int n,m,num,cnt,root,s;

int sz[m],size[m],top[m],fa[m],deep[m],son[m],head[m],maxn[m],f[m];

int rt1[m],rt2[m],val[m<<7],ch[m<<7][2];bool vis[m];

struct pointe[m<<1];

void add(int from,int to)

void dfs1(int x)

}void dfs2(int x,int tp)

int lca(int x,int y)

int dis(int x,int y)

void getroot(int x,int fa)

maxn[x]=max(maxn[x],s-size[x]);

if(maxn[x]=r)

int mid=(l+r)/2;

if(l1<=mid) change(ls,l,mid,l1,r1,v);

if(r1>mid) change(rs,mid+1,r,l1,r1,v);

}int query(int node,int l,int r,int x)

void update(int x,int d,int v)

}int ask(int x)

return res;

}int main()

dfs1(1),dfs2(1,1);

maxn[0]=s=n;

getroot(1,0),solve(root,0);

for(int i=1;i<=m;i++)

else

}return 0;

}

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,把周...