LG5283 异或粽子】的更多相关文章

题意 共有\(n\)个数,选择\(k\)个不同的\([l,r]\)区间,使得它们的异或和最大 $ 1 \leq n \leq 5 \times 10^5,k \leq 2 \times 10^5$ 思路 先会想到前缀异或和,这样求\([l,r]\)区间异或和只需要用\(pre[l-1]\oplus pre[r]\)以此减少运算次数.然后由于是异或,又会想到\(trie\),然后想一想,好像要用可持久化!!!完了太菜了不会. 但为了偷懒,必须思考.思考过后发现,不用可持久化,\([l,r]\)区间…
题目链接: [十二省联考2019]异或粽子 求前$k$大异或区间,可以发现$k$比较小,我们考虑找出每个区间. 为了快速得到一个区间的异或和,将原序列做前缀异或和. 对于每个点作为右端点时,我们维护出与他异或起来最大的左端点并将这组信息用结构体存起来插入堆中. 那么最大值就是堆顶那组(假设右端点为$r$),但考虑到次大值可能出自同一个右端点,所以在弹出堆顶后还需要将以$r$为右端点的次大值插入堆中. 那么如何求出以$r$为右端点的最大值和次大值? 我们对序列每个数为一个版本建可持久化$trie$…
[BZOJ5495][十二省联考2019]异或粽子(主席树,贪心) 题面 BZOJ 洛谷 题解 这不是送分题吗... 转异或前缀和,构建可持久化\(Trie\). 然后拿一个堆维护每次的最大值,每次如果取了一个数,就把它再在\(Trie\)树上查一次新建一个元素丢回堆里就行了. #include<iostream> #include<cstdio> #include<queue> using namespace std; #define ll long long #de…
[十二省联考2019]异或粽子 01trie 链接 luogu 思路 首先求前k大的(xo[i]^xo[j])(i<j). 考场上只想到01trie,不怎么会写可持久,就写了n个01trie,和直接sort一样.. 咳咳,官方题解是. 一个堆维护i为终点,可以取得位置为\([L,R]\)的最大值为val. 每次选最大的,然后将这个点分裂成两个: i为终点,可以取得位置为\([L,x-1]\)的最大值为\(val_1\). i为终点,可以取得位置为\([x+1,R]\)的最大值为\(val_2\)…
题意 题目描述 小粽是一个喜欢吃粽子的好孩子.今天她在家里自己做起了粽子. 小粽面前有 $n$ 种互不相同的粽子馅儿,小粽将它们摆放为了一排,并从左至右编号为 $1$ 到 $n$.第 $i$ 种馅儿具有一个非负整数的属性值 $a_i$.每种馅儿的数量都足够多,即小粽不会因为缺少原料而做不出想要的粽子.小粽准备用这些馅儿来做出 $k$ 个粽子. 小粽的做法是:选两个整数数 $l$, $r$,满足 $1 \leqslant l \leqslant r \leqslant n$,将编号在 $[l, r…
异或粽子 Description 小粽是一个喜欢吃粽子的好孩子.今天她在家里自己做起了粽子. 小粽面前有 n 种互不相同的粽子馅儿,小粽将它们摆放为了一排,并从左至右编号为 1 到 n.第 i 种馅儿具有一个非负整数的属性值 ai.每种馅儿的数量都足够多,即小粽不 会因为缺少原料而做不出想要的粽子.小粽准备用这些馅儿来做出 k 个粽子. 小粽的做法是:选两个整数数 l, r,满足 1 ≤ l ≤ r ≤ n,将编号在[l, r] 范围内的所有 馅儿混合做成一个粽子,所得的粽子的美味度为这些粽子的…
传送门:P5283 [十二省联考2019]异或粽子 题目大意: 给一个长度为n的数列,找到异或和为前k大的区间,并求出这些区间的异或和的代数和. QWQ: 考试时想到了前缀异或 想到了对每个数按二进制拆分 最高位取一定比前面所有取优 但是呆住了 没有想到是对前缀异或拆分 对于位运算等操作可以考虑 线性基和trie 因为 ai​ xor aj​=aj​ xor ai 所以吧这种情况算进去就取ans/2 因为 i​=j 时异或为0是最小的 不会影响答案 把各个前缀异或插进数组 询问强制以每个点为前面…
https://www.luogu.org/problemnew/show/P5283 https://loj.ac/problem/3048 小粽是一个喜欢吃粽子的好孩子.今天她在家里自己做起了粽子. 小粽面前有 n 种互不相同的粽子馅儿,小粽将它们摆放为了一排,并从左至右编号为 1 到 n.第 ii 种馅儿具有一个非负整数的属性值 a_i.每种馅儿的数量都足够多,即小粽不会因为缺少原料而做不出想要的粽子.小粽准备用这些馅儿来做出 k 个粽子. 小粽的做法是:选两个整数数 l, r,满足 1⩽…
$ \color{#0066ff}{ 题目描述 }$ 小粽是一个喜欢吃粽子的好孩子.今天她在家里自己做起了粽子. 小粽面前有 \(n\) 种互不相同的粽子馅儿,小粽将它们摆放为了一排,并从左至右编号为 \(1\) 到 \(n\).第 \(i\) 种馅儿具有一个非负整数的属性值 \(a_i\).每种馅儿的数量都足够多,即小粽不会因为缺少原料而做不出想要的粽子.小粽准备用这些馅儿来做出 \(k\) 个粽子. 小粽的做法是:选两个整数数 \(l\), \(r\),满足 \(1 \leqslant l…
题目 [题目描述] 小粽是一个喜欢吃粽子的好孩子.今天她在家里自己做起了粽子. 小粽面前有 $n$ 种互不相同的粽子馅儿,小粽将它们摆放为了一排,并从左至右编号为 $1$ 到 $n$.第 $i$ 种馅儿具有一个非负整数的属性值 $a_i$.每种馅儿的数量都足够多,即小粽不会因为缺少原料而做不出想要的粽子.小粽准备用这些馅儿来做出 $k$ 个粽子. 小粽的做法是:选两个整数数 $l,r$,满足 $1\le l\le r\le n$,将编号在 $[l,r]$ 范围内的所有馅儿混合做成一个粽子,所得的…