随笔分类 - 树链剖分
摘要:题链 树形dp 令f[u]表示以u为根的子树需要的最小点数; 令g[u]表示以u为根的子树未被截断的点数; 对于一个点u,其孩子节点v; f[u] = $\sum_$f[v]; g[u] = $\sum_$g[v]; 若u是关键点: 则需要截断子树中未被截断的点: f[u] += g[u]; g[u
阅读全文
摘要:题链 树剖板题 #include <bits/stdc++.h> using namespace std; #define ls rt<<1 #define rs rt<<1|1 #define LL long long #define PI acos(-1.0) #define eps 1e-8
阅读全文
摘要:题链 树链剖分模板题,注意ai数据范围就好 //#include <bits/stdc++.h> #include <iostream> #include <vector> using namespace std; #define ls rt<<1 #define rs rt<<1|1 #defin
阅读全文
摘要:题链 dp[x] 表示以 x 为进化终点能取得的最大进化次数; 可以发现 dp[x] 等于 树上x的前缀最大值 +1; 但是不可能递归寻找x的父亲直到根节点,因为会超时; 所以采用重链剖分+线段树维护前缀最大值,复杂度O(nlogn*logn); #include <bits/stdc++.h> u
阅读全文
摘要:题链 #include <bits/stdc++.h> using namespace std; #define LL long long #define ll long long #define ULL unsigned long long #define Pair pair<LL,LL> #de
阅读全文
摘要:题链 学习自大型同性交友网站,这个B 站up主讲的非常好! 终于学会了第一个维护树上问题的方法,我好兴奋啊! #include <bits/stdc++.h> using namespace std; #define LL long long #define ll long long #define
阅读全文

浙公网安备 33010602011771号