![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
LCT
文章平均质量分 78
Miao_zc
膜Hz
展开
-
bzoj2959: 长跑
又看了一下LCT,复杂度还是不懂,怎么样均摊O(longn)???感觉一写残就退化了。。。于是回顾了一下板子,总算是过了。。原树上的父亲大概是没有记吧。。不知道为什么find改成这样会T。。TATint find(int x){ acc(x);splay(x); while(c[x][0])x=c[x][0]; return x;}#include#include#i原创 2016-05-27 15:50:35 · 834 阅读 · 0 评论 -
bzoj3159: 决战
这道题真是让我对LCT有了新的认识啊!题意大概就是实现一颗树,支持路径翻转!然后我一脸懵逼地想到了splay,然后不会。其实只要一个LCT就可以了,额外开一颗splay记录prefer路径上的值,然后翻转就是MakeRoot+splay+reverLCt+reverSplay,然后就好了。。。LCt真是神奇啊。。。#include#include#define N 50005原创 2016-07-19 20:11:11 · 1076 阅读 · 0 评论 -
uoj#207. 共价大爷游长沙
miaom又来做LCT了!//lych:无敌由于不是很懂LCT子树信息维护的那套理论,想了好久(搞得树剖的子树维护就会了一样!)。首先是一个很巧妙的转化——将边在链上转化为这条边能将链的顶点分开。给每组顶赋一个随机权,每次可以把边断掉,查询每个联通块内权值异或和是否等于所有顶点权值异或和,就是子树异或和。然后发现动态树上子树不是dfs序连续那么简单,他应该是(当前点及沿偏爱边往下走得到原创 2017-03-07 20:51:07 · 875 阅读 · 2 评论