- 博客(3)
- 收藏
- 关注
原创 树链剖分的初步学习
综述在熟练泼粪树链剖分之前,我们先要引进新概念(不是某魔性英语教材): 重边:对于某非叶子节点u,其儿子v中满足v的子树最大的边(u,v)即为重边 轻边:一棵树上不是重边的边就是轻边 重链:连在一起的重边 怎样找到所有的重边呢? 我们通过两个dfs实现//sz为子树大小,deep为深度,son为重儿子,len为重链长度,top为重链的顶端点 //treeid为从原点至偏移后的点,fromi
2017-12-21 12:34:57 272
原创 BZOJ1095 Hide 捉迷藏 分治
%%% http://blog.csdn.net/qq_34454069/article/details/78757007题目Jiajia和Wind是一对恩爱的夫妻,并且他们有很多孩子。某天,Jiajia、Wind和孩子们决定在家里玩捉迷藏游戏。他们的家很大且构造很奇特,由N个屋子和N-1条双向走廊组成,这N-1条走廊的分布使得任意两个屋子都互相可达。 游戏是这样进行的,孩子们负责躲藏,Jiaj
2017-12-09 17:20:25 234
原创 无旋treap的初步学习
无旋treap是一种诡异的平衡树 最主要的操作 就是split(拆分成两棵子树)和merge(合并为一棵子树)update操作这个。。。就不讲了吧。因题而异。 所以我写出来是为了什么?split操作分为两种 一种是以前k个和剩下的来拆分,适用于区间操作时//r1为前k个的子树的根,r2为剩下的子树的根 void split_treap(int x,int k,int& r1,int& r2)
2017-12-03 21:30:29 367
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人