树链剖分
lahlah_
沉浸 尊重
展开
-
[luogu P5305] [GXOI/GZOI2019]旧词
[luogu P5305] [GXOI/GZOI2019]旧词题解其实和这题差不多首先还是先拆询问但是对于每个点,维护的权值需要差分一下假设当前点是u则当前点要加的点是dep[u]k−(dep[u]−1)kdep[u]^k-(dep[u]-1)^kdep[u]k−(dep[u]−1)k这样询问到根的路径的时候就可以加起来变成dep[u]kdep[u]^kdep[u]k然后就和那题一样了// luogu-judger-enable-o2#include<bits/stdc++.h&g原创 2020-10-18 22:07:44 · 116 阅读 · 0 评论 -
[luogu P4211] [LNOI2014]LCA
[luogu P4211] [LNOI2014]LCA题解首先考虑把询问拆成两个前缀和然后对于把把每个点一次插入,每次把那个点到根的所有点权值+1询问就是z到根的路径权值和树剖一下就做完了#include<bits/stdc++.h>#define mod 201314#define ll long longusing namespace std;const int N = 530005;const int INF = 9999999;struct A{ int原创 2020-10-18 21:59:01 · 388 阅读 · 0 评论 -
luogu P5305 [GXOI/GZOI2019]旧词
luogu P5305 [GXOI/GZOI2019]旧词题意一开始给出一棵树和k一共有若干询问就是每次给出x,yx,yx,y求∑depth(lca(i,y))k (i<=x)\sum depth(lca(i,y))^k \ \ (i <= x)∑depth(lca(i,y))k (i<=x)首先这题就是l...原创 2019-09-03 20:42:21 · 147 阅读 · 0 评论