线段树分治。以时间轴建立线段树,每一个线段树节点,存放[L,R]时间内,有影响的操作1,建立可持久化trie树,trie树以商店位置为root,就可以支持商店的区间查询,然后将操作0,按照商店位置排序,进行线段树分治,每次到一个节点,先把操作0插入trie树,然后把所有当前时间内存的有影响的操作1全 ...
分类:
其他好文 时间:
2020-07-08 20:13:47
阅读次数:
59
#include<bits/stdc++.h>using namespace std;const int maxn = 600009;int cnt = 1 , sum[maxn * 28] , ch[maxn * 28][2] , qianzhui[maxn] , T[maxn] , n , m; ...
分类:
其他好文 时间:
2019-12-21 11:46:10
阅读次数:
91
可持久化trie树 https://www.luogu.org/problem/P4735 题目描述 给定一个非负整数序列\{a\},初始长度为N。 有M个操作,有以下两种操作类型: 1. :添加操作,表示在序列末尾添加一个数x,序列的长度N+1。 2. :询问操作,你需要找到一个位置p,满足l≤p ...
分类:
其他好文 时间:
2019-09-28 23:26:11
阅读次数:
89
记 6.16翻车记。又翻车了 我不知道为什么 。 T1 写了n^2暴力 然后freopen 打错。导致 爆0 T2 写了可持久化trie树 又写了费用流 最后发现是一个最大生成树 然后敲上去 long long没开 爆到30 T3 写的两边dij 没检查 然后A了觉得还行。 原因 对拍写的太多了 导 ...
分类:
其他好文 时间:
2019-06-16 19:58:35
阅读次数:
137
思路 可持久化Trie树的好题 注意到题目要求求的询问非常的鬼,不太好做 然后有趣的思路就出现了,我们预处理出来异或前缀和s[i],每次询问的x异或上s[n]之后,问题就变成了在l 1~r 1中选一个异或x最大的数 然后因为区间查询,上可持久化Trie树就好了 注意初始的Trie树不能是空树,必须先 ...
分类:
其他好文 时间:
2019-03-07 01:15:31
阅读次数:
259
可持久化数据结构汇总 如果会了主席树之类的东西,这应该就很好理解了吧 可持久Trie主要处理的就是xor相关的问题 把维护的数转成2进制存入trie,查询的时候就从高位向低贪心,尽可能的在trie中选择表示询问值取反的儿子 ,这样才能使异或和最大 代码注释中... 例题1:P4735 最大异或和 版 ...
分类:
其他好文 时间:
2019-01-01 00:16:08
阅读次数:
427
"题目链接" 题解 看到异或和最大就应该想到01 trie树 我们记$S_i$为前i项的异或和 那么我们的目的是最大化$S_n$^$x$^$S_{j 1}$ $(l const int N = 600010, M = 25; define LL long long define RG registe ...
分类:
其他好文 时间:
2018-12-18 18:00:36
阅读次数:
212
可持久化trie树?好像和可持久化权值线段树差不多。。 如果这题没有那个$x[i]$这题就是一个裸的可持久化trie树。 仔细想想,多了这个$x[i]$之后有什么影响? 就是我们查询区间的时候区间的两个端点减去一个$x[i]$就行了。 但是这样我们查询的可能不是树上的一个节点了,我们在树上二分的时候 ...
分类:
其他好文 时间:
2018-12-14 21:05:40
阅读次数:
125
一看数据范围,n很小m很大,对长的那一维建可持久化线段树,另一维暴力枚举 ...
分类:
其他好文 时间:
2018-11-28 00:25:04
阅读次数:
209
好几天之前做的题目了,一直想写一下博客也没腾出时间来,今天赶紧把坑给填上呼呼呼~ 这道题首先如果只考虑每个商店中没有时间限制的物品时,我们只需要使用一棵可持久化trie树来维护区间内的异或最大值即可,这样我们可以把两部分的问题分离开来。 之后我们再考虑有时间限制与编号限制的情况下,该怎样做?无脑做法 ...
分类:
其他好文 时间:
2018-10-22 00:05:02
阅读次数:
151