随笔分类 - 数据结构--可持久化
摘要:题目大意 传送门 给定一个长为n的序列, 最大化选出k个不同区间异或和的和 \(n,k<=5*10^5\) solution 先讲套路: 看到这类跟位运算有关的题,先想想Trie树 设 \(S_i\) 为[1...i]区间的异或和,则任意一个区间[l,r]异或和为 \(S_{l-1}\) xor \
阅读全文
摘要:"传送门" 题解 先把 $d$ 二分,然后按价格插入主席树,主席树中维护当前区间水果的重量和与总价值,大概就是这样子. cpp include using namespace std; define re register define int long long define in inline
阅读全文
摘要:权值线段树 顾名思义,就是以权值为下标建立的线段树。 现在让我们来考虑考虑上面那句话的产生的三个小问题: 1. 如果说权值作为下标了,那这颗线段树里存什么呢? ————— 这颗线段树中, 记录每个值出现的次数 2.权值很大怎么办?数组空间不够啊 ————— 可以先离散化,再记录 3.那权值线段树到底
阅读全文