zgz讲的时候还完全不会线性基,刚学了一下来捉这题。。 维护一个集合,支持插入,删除,询问当前集合中任取数异或和最大值。(实际上每次插入删除都询问) 题里没说不过好像不会插入重复的数,,,这并不影响什么就是了。可能代码比较好写,, 我们知道肯定是要用线性基来解决的,但是不支持删除。 所以我们换个思路 ...
分类:
其他好文 时间:
2018-04-30 18:00:01
阅读次数:
122
集合选数异求最大异或和当然是用线性基做,可惜它不兹磁删除 所以线段树分治一下就好了 ...
分类:
其他好文 时间:
2018-04-20 23:38:05
阅读次数:
204
题目描述 小苗去市场上买了一捆小葱苗,她突然一时兴起,于是她在每颗小葱苗上写上一个数字,然后把小葱叫过来玩游戏。 每个时刻她会给小葱一颗小葱苗或者是从小葱手里拿走一颗小葱苗,并且 让小葱从自己手中的小葱苗里选出一些小葱苗使得选出的小葱苗上的数字的异或和最大。 这种小问题对于小葱来说当然不在话下,但是 ...
分类:
其他好文 时间:
2017-06-20 19:11:51
阅读次数:
130
考虑离线求出每个数存在的区间,用时间线段树套链表维护每段区间内存在的数字。然后从线段树根节点开始dfs,子节点的线性基=往父节点的线性基中插入子节点存在的数字后得到的线性基。时间复杂度$O(31n\log n)$。#include#includestd::mapvis,loc;inline void...
分类:
其他好文 时间:
2015-07-12 15:28:17
阅读次数:
121
题目大意:给定一个可重集合,每个时刻加入一个数或删除一个数,每次操作后询问子集的最大异或和每个数存在的时间都是一些区间
按照时间分治,维护线性基,时间复杂度O(nlognlogai)O(n\log n\log a_i)
然而数据范围是50W,出题人在想什么。。。。#include
#include
#include
#include <cstrin...
分类:
其他好文 时间:
2015-07-12 09:52:05
阅读次数:
429