摘要: 树链剖分+线段树 线段树维护max,min,左往右的最大差,右往左的最大差 求LCA时一定要注意方向 # include <bits/stdc++.h> # define RG register # define IL inline # define Fill(a, b) memset(a, b, 阅读全文
posted @ 2017-12-30 17:47 Cyhlnj 阅读(253) 评论(0) 推荐(0)
摘要: 按位从高往低贪心,枚举到第i位,只需要判断这2^i长度的区间是否有菜,用主席树就可以了 # include <bits/stdc++.h> # define RG register # define IL inline # define Fill(a, b) memset(a, b, sizeof( 阅读全文
posted @ 2017-12-30 14:41 Cyhlnj 阅读(152) 评论(0) 推荐(0)
摘要: 这道题可以用LCT做,开set,LCT,二叉树 操作1:直接开set,找到它要插入的位置,一定是前驱,后缀中deep最大的(显然手玩) 操作2:set+LCT询问路径,直接手动提上去,因为树的形态不变 操作3:同2 操作4:LCT::Cut,手动删除 操作5:同4 没了 记得手动更新二叉树(这个一定 阅读全文
posted @ 2017-12-30 10:30 Cyhlnj 阅读(214) 评论(0) 推荐(0)
摘要: luogu题面 这道题是NOI起床困难综合症改编而来的 思路是一样的 这道题我们考虑用LCT维护,每个节点维护两个值 一个为中序遍历这棵子树的ans0,ans1(分别表示0和INF(二进制下全为1)跑的答案) 另一个为中序遍历的反向遍历这棵子树的ans0,ans1 还要记得保存这个点的初始操作 考虑 阅读全文
posted @ 2017-12-30 09:01 Cyhlnj 阅读(181) 评论(0) 推荐(0)
摘要: ST表,再大力讨论一下(因为lower_bound和upper_bound,WA了一次) # include <bits/stdc++.h> # define RG register # define IL inline # define Fill(a, b) memset(a, b, sizeof 阅读全文
posted @ 2017-12-30 08:15 Cyhlnj 阅读(371) 评论(0) 推荐(0)