随笔分类 -  数据结构--CDQ分治

摘要:P4585 [FJOI2015]火星商店问题 线段树+可持久化01Trie。 首先区间的限制很容易想到线段树,然后异或最大值很明显就是可持久化 01 Trie,于是可以维护,至于 d 天内的限制,我们插入 01Trie 的时候打一个时间 \(tag\) ,询问的时候看一下满不满足就行了。 代码: # 阅读全文
posted @ 2021-04-22 16:21 __Anchor 阅读(104) 评论(0) 推荐(0)
摘要:P5459 [BJOI2016]回转寿司 给定一个序列,求有多少个子区间满足区间和大于等于 \(L\) 且小于等于 \(R\) 。 像这样的区间信息可以拆分成前缀和的,也就是具有区间可减性的信息,我们可以直接求一遍前缀和。 然后我们发现题目就变成了求点对数量了,而且这里很明显就是一个二维偏序问题,求 阅读全文
posted @ 2021-04-16 21:27 __Anchor 阅读(105) 评论(0) 推荐(0)
摘要:BZOJ2141/BSOJ3904 排队 题意:给定一个序列,求逆序对个数,每次可以交换两个数。(\(n\leq 2*10^4\) ,\(m\leq 2*10^3\)) 直接先处理第一次的答案,然后再考虑交换对答案的贡献。 因为 $n,m$都很小,所以可以直接暴力查询每次改变的量即可。 时间复杂度 阅读全文
posted @ 2021-04-13 14:46 __Anchor 阅读(43) 评论(0) 推荐(0)
摘要:P3759 [TJOI2017]不勤劳的图书管理员 P3759 [TJOI2017]不勤劳的图书管理员 逆序对是常见的二维偏序问题,这里是带交换的带权逆序对,也就是上一题的加强,多维护一下贡献即可。 阅读全文
posted @ 2021-04-12 16:20 __Anchor 阅读(74) 评论(0) 推荐(0)
摘要:CF785E Anton and Permutation CF785E Anton and Permutation 带交换逆序对。 前面(位置)比它大的数的个数+后面比它小的个数,很显然这就是一个三维偏序的问题(时间上也要满足偏序) 首先把第一维时间排序(原本就有序了) 然后对位置进行CDQ分治,对 阅读全文
posted @ 2021-04-12 16:19 __Anchor 阅读(143) 评论(0) 推荐(0)
摘要:P4396 [AHOI2013]作业 P4396 [AHOI2013]作业 CDQ分治+树状数组或者莫队+树状数组。 CDQ分治做法: 第一问很简单,就是区间询问大于等于一个数且小于等于一个数的个数,容易发现这就是二维偏序。 然后发现第二问就是矩阵数颜色,那么我们沿用 HH的项链 这道题的经典思路, 阅读全文
posted @ 2021-04-12 16:13 __Anchor 阅读(80) 评论(0) 推荐(0)