set
Cyhlnj
这个作者很懒,什么都没留下…
展开
-
[AH/HNOI2017]单旋
这道题可以用LCT做,开set,LCT,二叉树操作1:直接开set,找到它要插入的位置,一定是前驱,后缀中deep最大的(显然手玩)操作2:set+LCT询问路径,直接手动提上去,因为树的形态不变操作3:同2操作4:LCT::Cut,手动删除操作5:同4没了记得手动更新二叉树(这个一定要想清楚会又WA又TLE又RE n遍)# include <bits/stdc++.h># def原创 2017-12-30 10:30:20 · 313 阅读 · 0 评论 -
Bzoj3277:串
题面传送门Sol广义samsamsam 每个samsamsam的状态开setsetset记录属于哪些串 parentparentparent树上启发式合并setsetset然后每个串就在上面走,通过不停地跳parentparentparent树的父亲节点保证大于等于kkk,贡献就是lenlenlen# include <bits/stdc++.h># ...原创 2018-04-24 21:03:27 · 271 阅读 · 0 评论 -
Bzoj2780: [Spoj]8093 Sevenk Love Oimaster
题目传送门Sol就是广义samsamsam 然后记录下每个状态属于哪些串,开setsetset维护 parentparentparent树上启发式合并一下就好了# include <bits/stdc++.h># define RG register# define IL inline# define Fill(a, b) memset(a, b, sizeo...原创 2018-04-25 10:52:28 · 214 阅读 · 0 评论 -
BZOJ4771: 七彩树
传送门考虑维护每个颜色的虚树按照 dfndfndfn 顺序维护这些点,在这些点上 +1+1+1,相邻点的 lcalcalca 处 −1-1−1,这样,无论包含哪一个子树的几个点,子树权值和始终为 111可以用 set+LCAset+LCAset+LCA 实现现在变成了二维数点的问题,按照深度依次加入每个点用主席树维护,每个线段树维护 dfsdfsdfs 序即可# include <...原创 2019-01-16 10:30:52 · 249 阅读 · 0 评论