![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Link Cut Tree
Hillan_
An OIer From ZJ
展开
-
BZOJ2049: [Sdoi2008]Cave 洞穴勘测
动态树 LCT 过得 由于是无根树我们需要换根,换根时打个标记表示需要旋转然后就好了原创 2015-11-24 18:53:37 · 516 阅读 · 0 评论 -
BZOJ2843: 极地旅行社
裸LCT#include<cstdio>#include<cstring>#include<cstdlib>using namespace std;struct Node{ Node *lc,*rc,*f; int data; int sum; bool Rev; Node *pl; inline bool h(){return f->lc==this||原创 2016-02-12 14:20:42 · 468 阅读 · 0 评论 -
BZOJ3069: [Pa2011]Hard Choice 艰难的选择
很好的一道LCT的题目 虽然能马上发现时LCT但是这个性质起码我是画了个图。。。 要处在同一个强联通分量里的点才有两条不重合路径 那么很容易想出来只需要离线每次加边同时缩点就好了 然后只需要打个并查集维护一下当前点被缩成哪个点就好了 我第一次LCT的并查集忘了更新了#include<cstdio>#include<iostream>#include<cstring>#include<原创 2016-03-04 15:21:23 · 810 阅读 · 0 评论 -
BZOJ3669: [Noi2014]魔法森林
LCT一开始自己脑子抽用节点的权值表示连向父亲的边的长度后来发现不能拿来搞翻转然后看了别人的题解 发现居然可以新开一个点。。。。药丸之后又调试了一天 最后听了度教的话 重打。。发现好像是自己的Access打跪了。。。。完了。。。。一天只调好一道题。。。。去死吧 !#include#include#include#include#includeus原创 2016-02-20 18:07:29 · 327 阅读 · 0 评论 -
BZOJ3514: Codechef MARCH14 GERALD07加强版
主席树+LCT 每次加边的时候判断一下是否成环 如果没有就加进去否则弹出环内比序号最小边 然后统计答案#include<cstdio>#include<iostream>#include<cstring>#include<cstdlib>#include<cmath>using namespace std;char c;inline void read(int &a){原创 2016-02-28 11:36:20 · 571 阅读 · 0 评论 -
Hackerrank How many substrings
好难啊QAQ 今天又去想了一下 然后向敦爷求证了一下 发现思路还是对的代码太难实现了。。 LCT维护last并在Segment Tree上更新。。。 感觉自己被日死了 最后看着板子打了一发。。 先离线 考虑每个串在最后出现的开始位置有贡献 然后就是一个区间加 区间减的操作 在Access的时候更新线段树 时间复杂度O(nlognlogn)O(nlognlogn)你看800+sub原创 2017-02-16 20:40:51 · 698 阅读 · 0 评论