洛谷P3760异或和】的更多相关文章

传送门啦 传送门啦 一般这种位运算的题都要把每一位拆开来看,因为位运算每个位的结果这和这一位的数有关. 这样我们用s[i]表示a的前缀和,即 $ a[1]+a[2]+....a[i] $ ,然后我们从这些数二进制最右位 $ 2^0 $ 开始,按照每一位对答案的贡献来计算. 假设我们现在算到最右位 $ 2^0 $ ,并且位于第i个数,我们想要知道以i结尾的连续和对答案的贡献,只需要知道有多少 $ s[i]-s[j](0<=j<i)$ 的 $ 2^0 $ 位是1. (设s[0]=0) 如果这个数是…
洛谷 P3908 异或之和 题目描述 求1⨁2⨁⋯⨁N 的值. A⨁B 即 AA, B 按位异或. 输入输出格式 输入格式: 1 个整数 N . 输出格式: 1 个整数,表示所求的值. 输入输出样例 输入样例#1:  3 输出样例#1:  0 说明 • 对于50% 的数据, 1≤N≤10^6 : • 对于100% 的数据, 1≤N≤10^18 . #include<cstdio> #include<iostream> #include<algorithm> using…
Portal Description 给出一个\(n(n\leq10^5)\)的序列\(\{a_n\}(\Sigma a_i\leq10^6)\),求该数列所有连续和的异或和. Solution 线段树/树状数组. 首先做出前缀和\(p\),然后按位考虑答案上的值.考虑\(2^k\)这一位,有多少个连续和\([i,j]\)在\(2^k\)位为\(1\).我们发现,\(x\)在\(2^k\)位上为\(1⇔x \bmod 2^{k+1}\in[2^k,2^{k+1}-1]\).那么对于每一个\(j\…
P3909 异或之积 题目描述 对于A_1,A_2,A_3,\cdots,A_NA1​,A2​,A3​,⋯,AN​,求 (6\times \sum_{i=1}^N\sum_{j=i+1}^N\sum_{k=j+1}^N A_i\times A_j\times A_k)\ mod\ (10^9+7)(6×∑i=1N​∑j=i+1N​∑k=j+1N​Ai​×Aj​×Ak​) mod (109+7) 的值. 输入输出格式 输入格式: 第1 行,1 个整数NN. 第2 行,NN个整数A_1,A_2,A_…
P3908 异或之和 题目描述 求1 \bigoplus 2 \bigoplus\cdots\bigoplus N1⨁2⨁⋯⨁N 的值. A \bigoplus BA⨁B 即AA , BB 按位异或. 输入输出格式 输入格式: 1 个整数NN. 输出格式: 1 个整数,表示所求的值. 输入输出样例 输入样例#1: 复制 3 输出样例#1: 复制 0 说明 • 对于50% 的数据,1 \le N \le 10^61≤N≤106: • 对于100% 的数据,1 \le N \le 10^{18}1≤…
https://www.luogu.org/problemnew/show/P3908 题目描述 求1 \bigoplus 2 \bigoplus\cdots\bigoplus N1⨁2⨁⋯⨁N 的值. A \bigoplus BA⨁B 即AA , BB 按位异或. 输入输出格式 输入格式: 1 个整数NN. 输出格式: 1 个整数,表示所求的值. 输入输出样例 输入样例#1: 复制 3 输出样例#1: 复制 0 说明 • 对于50% 的数据,1 \le N \le 10^61≤N≤106: •…
原题链接 本人看了其它解法,发现本人的解法还是 首创 ! 而且我的解法好像和 \(\times 6\) 没什么关系 -- (如果没 \(\times 6\),我没还不用算逆元) 别人的思路呢,大都是从 \(\times 6\) 想到三个数的全排列,然后交换顺序枚举. 下面看我的方法. 先抛开 \(\times 6\). \[\sum_{i=1}^n \sum_{j=i+1}^n \sum_{k=j+1}^n a_i \times a_j \times a_k \] \[= \sum_{j=1}^…
LOJ 洛谷 考场上都拍上了,8:50才发现我读错了题=-= 两天都读错题...醉惹... \(Solution1\) 先求一遍前缀异或和. 假设左端点是\(i\),那么我们要在\([i,n]\)中找一个\(sum_j\)使得它和\(sum_{i-1}\)异或最大.可以可持久化Trie. 对\(i\in[1,n]\)都求一遍它能得到的最大的异或值,扔到堆里. 每次从堆里找出值最大的,假设是\(x\),与\(sum_{x-1}\)异或得到最大值的数是\(sum_y\),那么之后就不能选\(sum_…
题目链接 [洛谷传送门] [LOJ传送门] 题目大意 让你求区间异或和前\(k\)大的异或和的和. 正解 这道题目是Blue sky大佬教我做的(祝贺bluesky大佬进HA省A队) 我们做过某一些题目,非常的相似.[超级钢琴]还有[最小函数值]还有[最大异或和] 感觉这一些题目拼在一起就变成了这一道水题. 首先我们需要预处理出,所有区间的异或最大值. 这个东西可以用可持久化\(01trie\)实现,那么我们思考一下如何实现查询第\(k\)大的值的操作. 以下是关于01字典树中查询第k大的操作的…
题目链接 [BZOJ传送门] [洛谷传送门] 题解 终于学会了可持久化trie树了.感觉并不是特别的难. 因为可持久化,那么我们就考虑动态开点的trie树. 都知道异或操作是有传递性的,那么我们就维护一个前缀异或和. [最长异或距离] 可以参考以上这一道题目的贪心策略. 每次找到另外一边的(说的清楚一点就是每一次找字典树的儿子都找异或的数当前这一位的异或1的值),这样可以保证疑惑后答案最大. 参照主席树的区间最小的求法:[洛谷的模板] 每一次我们就查找root[l - 1] ~ root[r]区…