
树上操作
gigo_64
莫看,莫看,这不是真实的我(七海脸)
溜了溜了
展开
-
LCT(link-cut-tree)入门
ps:由于博主的qwq,把很多实边写成了实链,大家就将就着看吧嘿嘿。LCT,全称动态树,用于应付不断地加边删边的树的一种算法,非常非常优秀。因为其经典操作link和cut而被叫做link cut tree(是吗??猜的)emm link:链接,cut:砍掉(滑稽)现在我们开始。(先声明LCT维护的是一个森林哈!)引入:仨链剖分我们一般提到的三种剖分是:重链剖分,实链剖分,...原创 2019-02-15 10:13:57 · 1798 阅读 · 1 评论 -
【SCOI2016】【线性基】幸运数字
本题在树上,其实可以用trie树水,我偏要线性基pwp使用倍增减少复杂度。我们在倍增LCA数组的基础上多加一维维护线性基。根据线性基性质(qwq),将一个线性基插入另一个线性基可以得到两个数列合并后的线性基。所以我们每次查询用倍增跳的方式强行合并然后求最大就行。代码#include<bits/stdc++.h>using namespace std;#de...原创 2019-08-01 15:21:29 · 167 阅读 · 0 评论 -
【hdu5909】Tree Cutting【FWT加速运算】【树形dp】
也许因为在人群中多看了你一眼,再也没能忘掉你容颜以前总把FFT啊FWT啊当成题目来做,现在要转变思维,把它们当做工具,在某些时候用来加速的工具。设f[i][j]表示i这个大子树内子树权值为j的子树个数。那么相当于自己和所有子节点进行异或操作,FWT加速即可。一开始真没想到,放一个yyb的代码上来,反正长得差不多。注意为了保证答案上传,每次要把常数项++,但计算答案的时候也不...原创 2019-08-11 16:42:37 · 115 阅读 · 0 评论 -
【十二省联考2019】春节十二响【递归合并】【堆】
我要带叶子去看烟花点权树,有祖先关系不能同段,段代价为段内权值最大值,求段代价和最小值。粗略思考性质1:从上到下的一条链上的任何两个点不能同段。然后我就宕机了。开题解。卧槽我怎么没想到呢咋就没收noip2018的启发呢明明就是个合并的故事……马后炮快乐ouo很明显,对于一个点,假设它有两个子链(表示从某个子节点开始往下的链),那这两个链任何两个点都可以同段。那肯定大...原创 2019-10-04 16:42:19 · 125 阅读 · 0 评论 -
【CF19E】【bzoj4424】Fairy【二分图判定】【思维分析】
懒得找传送门所以自行百度吧ouo删掉一条边,使得原图成为一个二分图。二分图充要条件:无奇环。一个很美好的二分图:树二分图:删了一条边还是二分图所以对于原图,随手dfs一下先构造出一棵树。然后我们讨论非树边对原图的影响。我们定义:只有一个非树边的奇环为基环,只有一个非树边的偶环为藕环,所对应的非树边叫基/藕边。这个定义的优势在于每条边的基藕性是确定的。然后我们可以...原创 2019-10-05 15:27:22 · 276 阅读 · 1 评论