bzoj 4765 普通計算姬

2021-08-09 05:35:33 字數 1133 閱讀 5190

求樹上一段連續編號的子樹大小的和,帶修改。

分塊。

預處理乙個東西g[

x][i

] 表示x這個點對i這個塊的影響。

然後就可以暴力搞了。

對於零散的點,就用樹狀陣列維護dfs序的區間和。

貌似是nn√

logn

的,不過就是能過。

還有以後打**盡量注意,少遞迴,少遞迴,少遞迴!

最後要用un

sign

edlo

nglo

ngcode:

#include

#include

#include

#include

#include

#define ll unsigned long long

using namespace std;

struct nodea[200010];int len=0,last[100010];

int pre[100010],n,m,g[100010][350],d[100010],rt;

int ys[100010],z=0,la[100010],ri[350];

ll tr[100010],f[350];

intread()

while(ch>='0'&&ch<='9')

return

x*f;

}void ins(int

x,int

y)int lowbit(int

x)void change(int

x,int k)

ll get(int

x)void dfs(int

x,int fa)

}int main()

int len=sqrt(n);

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

//for(int i=1;i<=pre[n];i++) dfs(rt,0,i,0);

dfs(rt,0);

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

ri[pre[n]]=n;

while(m--)

else

printf("%llu\n",ans);}}

}

BZOJ 4765 普通計算姬

bzoj 4765 普通計算姬 分塊 奮戰三星期,造台計算機 小g響應號召,花了三小時造了臺普通計算姬。普通計算姬比普通計算機要厲害一些 普通計算機能計算數列區間和,而普通計算姬能計算樹中子樹和。更具體地,小g的計算姬可以解決這麼個問題 給定一棵n個節點的帶權樹,節點編號為1到n,以root為根,設...

BZOJ4765 普通計算姬

bzoj4765 普通計算姬 試題描述 奮戰三星期,造台計算機 小g響應號召,花了三小時造了臺普通計算姬。普通計算姬比普通計算機要厲害一些。普通計算機能計算數列區間和,而普通計算姬能計算樹中子樹和。更具體地,小g的計算姬可以解決這麼個問題 給定一棵n個節點的帶權樹,節點編號為1到n,以root為根,...

bzoj4765 普通計算姬

給定一棵 n 個節點的帶權樹,節點編號為 1 n 以 root 為根,設 sum p 表示以點 p 為根的這棵子樹中所有節點的權值和。支援下列兩種操作 1.給定兩個整數 u,v 修改點 u 的權值為 v 2.給定兩個整數 l,r 計算 sum sum 第一行兩個整數 n,m 表示樹的節點數與操作次數...