博客园 首页 私信博主 显示目录 隐藏目录 管理 动画

随笔分类 -  高级数据结构——LCT

摘要:[TOC] 2018.8.6 正睿暑期集训营 Day3 时间:5h(实际) 期望得分:... 实际得分:... rating 93 \_(:зゝ∠)\_ "比赛链接" A 亵渎(DP) "题目链接" 贪心不对啊,根本不知道该以什么策略。。 最优情况下亵渎应是最后用,此时所有元素都应在1~x内。 f[ 阅读全文
posted @ 2018-08-06 19:29 SovietPower 阅读(198) 评论(0) 推荐(0) 编辑
摘要:给你一个字符串init,要求支持两个操作: (1)在当前字符串的后面插入一个字符串s (2)询问字符串s在当前字符串中出现了几次 强制在线。 阅读全文
posted @ 2018-06-28 16:35 SovietPower 阅读(157) 评论(3) 推荐(0) 编辑
摘要:做(+颓)了4个晚自习后的1h终于写完了(这道模板题) 阅读全文
posted @ 2018-03-29 23:22 SovietPower 阅读(207) 评论(0) 推荐(0) 编辑
摘要:有一棵n个点的有根树(初始1为根),每个点有不同的颜色。有m次三种操作: 1. x:把x到根节点的路径上所有点染成一种没出现过的颜色。 2. x y:求xy路径上出现颜色的种数。 3. x:在x的子树中选一个点,使其到根节点的路径上出现颜色种数最多。 n,m105阅读全文
posted @ 2018-03-24 17:55 SovietPower 阅读(139) 评论(0) 推荐(0) 编辑
摘要:给定一张图,求一棵生成树使得其最大边权值-最小边权值最小。 n5×104, m2×105阅读全文
posted @ 2018-03-24 10:53 SovietPower 阅读(243) 评论(0) 推荐(0) 编辑
摘要:题目链接 题意: 森林,动态建边、删边,询问从S开始走到T的期望时间。走位: 每次人会随机地选一条未走过的边走,走到无路可走,再退回。这样直到终点T。走一条边、从一条边退回都花费时间1。 题目特点是走到一棵子树一定会全走完,且是两遍的值。画个图,可以看出这一过程是: 从S开始,随机走 阅读全文
posted @ 2018-03-24 07:44 SovietPower 阅读(199) 评论(0) 推荐(0) 编辑
摘要:题目链接 BZOJ 洛谷 详见这. 求所有点到某个点距离和最短,即求树的重心。考虑如何动态维护。 两棵子树合并后的重心一定在两棵树的重心之间那条链上,所以在合并的时候用启发式合并,每合并一个点检查sz大的那棵子树的重心(记为root)最大子树的sz2是否>n; 若>n,则向$f 阅读全文
posted @ 2018-03-23 21:15 SovietPower 阅读(375) 评论(0) 推荐(0) 编辑
摘要:"题目链接 BZOJ" "洛谷" 对每种颜色维护一个LCT,保存点之间的连接关系。 修改权值A[x]和所有Max[x]都要改; 修改边的颜色先枚举所有颜色,看是否在某种颜色中有边,然后断开。(枚举一遍就行啊 还以为要set什么的存边的颜色) (条件1直接用数组存233) 修改x的颜色必须先把x旋到根 阅读全文
posted @ 2018-03-23 12:34 SovietPower 阅读(132) 评论(0) 推荐(0) 编辑
摘要:"题目链接 BZOJ" "洛谷" "详见这" 很明显题目是要求去掉一条边后两边子树sz[]的乘积。 LCT维护的是链的信息,那么子树呢? 我们用s_i[x]来记录轻边连向x的子树的和(记作虚儿子),那么sum[x]更新时就是sum[lson]+sum[rson]+val[x]+s_i[x]。 现在需 阅读全文
posted @ 2018-03-22 20:57 SovietPower 阅读(144) 评论(0) 推荐(0) 编辑
摘要:"题目链接" 日常zz被define里没取模坑 cpp //标记下放同线段树 注意51061^2 2147483647,要开unsigned int // sz[]别忘了。。 include include include define gc() getchar() define mod (5106 阅读全文
posted @ 2018-03-21 21:05 SovietPower 阅读(171) 评论(0) 推荐(0) 编辑
摘要:"题目链接" 从一个点只能往后跳,即后继状态只有一个,那么拿nxt[x]做fa[x]啊!这样就成了一棵树,从每个点开始的答案是它到所在树的根节点的距离。 nxt[]的更改即动态修改树边,用LCT即可。 这样查询需要的就是 Access(x),Splay(x);return sz[x];(sz[lso 阅读全文
posted @ 2018-03-21 15:25 SovietPower 阅读(222) 评论(0) 推荐(0) 编辑
摘要:"题目链接" "LCT(良心总结)" cpp include include include define gc() getchar() const int N=3e5+5; inline int read() { int now=0;register char c=gc(); for(;!isdi 阅读全文
posted @ 2018-03-21 11:21 SovietPower 阅读(216) 评论(1) 推荐(1) 编辑

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