随笔分类 -  数据结构 / LCT

摘要:个人感觉各方面难度高于《在美妙的数学王国中畅游》,也不知道是不是求导的关系,这题 \(luogu\) 难度评级还更低。不过感觉这题作完对 \(LCT\) 理解更顺畅了。 前四个操作简单,关键在第五人格操作。 注意力惊人的注意到我们无法像普通 \(Splay\) 一样,直接对 \(LCT\) 中的 \ 阅读全文
posted @ 2025-01-09 17:14 长安一片月_22 阅读(5) 评论(0) 推荐(0) 编辑
摘要:事实证明物竞笔记是个好东西,可惜没带,不然还能谎称自己会一点求导和微积分。 顺便在这里把比较经典的一些关于求导的东西记录一下: 常用函数求导: \(C'=0,(x^n)'=nx^{n-1},(\log_ax)'=\frac 1{x\ln a}\) \((\ln x)'=\frac 1x,(a^x)' 阅读全文
posted @ 2025-01-09 09:27 长安一片月_22 阅读(6) 评论(0) 推荐(0) 编辑
摘要:\(LCT\) 动态维护树上路径最值,典中典了。 时间复杂度 \(O(n\log n)\)。 #include<bits/stdc++.h> #define fa(x) lct[x].fa #define fl(x) lct[x].fl #define mx(x) lct[x].mx #define 阅读全文
posted @ 2025-01-08 18:24 长安一片月_22 阅读(3) 评论(0) 推荐(0) 编辑
摘要:名字感觉挺奇怪的。 考虑离线算法。首先答案就是用 \(n\) 减去连完边后的生成树森林边数。生成树当然就可以用 \(lct\) 求解了。我是不会告诉你这个时候我已经开始想回滚莫队了的。 考虑当我们倒序加入 \([l,r]\) 中的边时,哪些边会产生贡献。我们考虑假如我们新加入一条边,与原先的生成树形 阅读全文
posted @ 2025-01-08 18:21 长安一片月_22 阅读(2) 评论(0) 推荐(0) 编辑
摘要:最大值最小的路径肯定在最小生成树上,考虑用 \(LCT\) 维护最小生成树,只需要维护长度最长的边即可实现。由于 \(LCT\) 维护最小生成树不支持删边,所以采用倒序加边的方式处理。 时间复杂度 \(O(n\log n)\)。 #include<bits/stdc++.h> #define fa( 阅读全文
posted @ 2025-01-08 14:37 长安一片月_22 阅读(5) 评论(0) 推荐(0) 编辑
摘要:加边删边 \(LCT\),标记下放同 \(luogu\) 线段树 \(2\) 一题。 时间复杂度 \(O(n\log n)\),第一次交的时候我维护 \(sum\) 不维护 \(sz\ WA\) 完了。 #include<bits/stdc++.h> #define int long long #d 阅读全文
posted @ 2025-01-08 10:57 长安一片月_22 阅读(4) 评论(0) 推荐(0) 编辑
摘要:一眼树链剖分或 \(LCT\),由于在学后者所以就写了。 取反操作相当于把 \(min,max\) 取反后交换,所以要维护 \(min,max,val\)。 时间复杂度 \(O(m\log n)\)。 #include<bits/stdc++.h> #define fa(x) lct[x].fa # 阅读全文
posted @ 2025-01-06 21:19 长安一片月_22 阅读(3) 评论(0) 推荐(0) 编辑
摘要:似乎所有的线段树分治题都能被 \(LCT\) 平替掉? 一眼动态树,直接 \(LCT\)。 Connect x y 操作用 \(link(x,y)\) 实现,Destroy x y 操作用 \(cut(x,y)\) 实现,Query x y 操作用 \([find(x)=find(y)]\) 实现。 阅读全文
posted @ 2025-01-06 17:40 长安一片月_22 阅读(6) 评论(0) 推荐(0) 编辑
摘要:首先,\(LCT\) 一般指疏松结缔组织。 疏松结缔组织是指一种柔软而富有弹性的结缔组织。主要填充在各器官或组织间的间隙中,如剥制动物标本时,将皮肤拉开,就可见到薄而透明的疏松结缔组织。 对不起,刚才生物同志走错片场了。 \(LCT(Link\ Cut\ Tree)\),是一种可以解决动态树问题的数 阅读全文
posted @ 2025-01-06 17:12 长安一片月_22 阅读(8) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示