动态树
文章平均质量分 67
Hanks_o
一名。
展开
-
bzoj1095: [ZJOI2007]Hide 捉迷藏(动态点分治)
题目大意: 给出一棵树,初始每个节点为黑色。 C操作改变一个节点的颜色。 A操作询问树上最远的两个黑色节点的距离。 这道题我也是学了好久。 解法: 我用到的是动态点分治,当然大牛们打LCT也是可以的(万能的LCT!!) 先普及一下树的重心(相信很多人都知道) 相对于上面这棵树,用f[i]表示删除i之后剩下的最大的子树的节点数(第一次听可能有点懵逼) 拿节点4来说,将4删除后剩...原创 2017-08-26 18:52:53 · 1098 阅读 · 3 评论 -
bzoj1095: [ZJOI2007]Hide 捉迷藏(动态点分治+树上ST表)
题目传送门 这道题跟我之前做的Qtree4几乎是一样的。 都是神题。 其实我很想膜一下出题人的。 太强了。详细解法还是看我的博客吧。 再写要写死人了。 Qtree4博客 不会动态点分治的话还是一定要看我这篇博客的(毕竟我写的很辛苦。)这道题与Qtree4唯一的不同就是边权为1。 每次dep+1就好。代码实现(Qtree4代码改的):#include<set> #include<map原创 2017-09-25 20:15:05 · 502 阅读 · 0 评论 -
bzoj2152: 聪聪可可(点分治)
题目传送门 哇有意思。解法: 这道题做了两天了。。 贼难受。。 因为这道题不可能n方枚举。 但是一旦确定了最近公共祖先之后。 只用枚举整一棵的点就行了(因为他肯定经过最近公共祖先嘛) 但是每个点都有可能作为最近公共祖先呀。 所以我们就希望对于每个最近公共祖先,它整一棵树的节点数尽量少咯。 点分治嘛,让他分得更平均。 不会点分治可以看这里那么在确定最近公共祖先之后怎么做呢。 枚举原创 2017-10-29 15:41:04 · 339 阅读 · 0 评论