摘要:
伸展树 多值版 #include<bits/stdc++.h> using namespace std; template<class T> inline bool read(T &x){ x=0;register char c=getchar();register bool f=0; while( 阅读全文
摘要:
树剖版lca 树剖自带lca #include<bits/stdc++.h> using namespace std; template<class T>inline bool read(T &x){ x=0;register char c=getchar(); while(!isdigit(c)) 阅读全文
摘要:
树链剖分(点) 解决: 将两个节点之间的简单路径上的点的权值加上v 求两个节点之间的简单路径上的点的权值之和 以某一节点为根节点的子树内所有的点的权值加上v 求某一节点为根节点的子树内所有的点的权值之和 思想: 将数划分成若干链,用线段树或者树状数组对这些链进行操作 重儿子:对于非叶子节点x,以x的 阅读全文
摘要:
解决图中: 任意两节点(可以不连通)找到x<->y路径中边权的最小的最大值,反之亦然(也可以用树剖写) 给定起点,经过的路径边权有某限制下的(如小于等于某值)点权第k小(大),需要主席树。 对于1: 看着像二分。。 对原图边权排序,生成树是直接并查集merge x,y两个节点,重构树的话会新生成一个 阅读全文