![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
异或运算
文章平均质量分 57
酷酷的Herio
这个作者很懒,什么都没留下…
展开
-
D. Little Girl and Maximum XOR(贪心)
D. Little Girl and Maximum XOR(贪心)贪心,从最高位开始,显然相同的位 是没有贡献的,因为[L,R][L,R][L,R]范围内这些数对应的这些位都相同,我们找到第一个不相同的位kkk。显然RRR的第kkk位是1,LLL的第kkk位是0.那么较大的那个数,我们可以取100000001000000010000000,且该数肯定≤R\le R≤R,因为后面都为0.较小的数取011111111110111111111101111111111,该数肯定≥L\ge L≥L,因为后面原创 2021-08-11 09:35:45 · 369 阅读 · 0 评论 -
B. Dima and a Bad XOR(异或)
B. Dima and a Bad XOR(异或)我的思路是统计每一位有没有可能出现,先统计每一行该位全为1的,如果个数是奇数,则直接选这些,然后其他选0,否则看是否至少有一个既有1也有0的,选1,其他选0.时间复杂度:O(nmlogA)O(nmlogA)O(nmlogA)// Problem: B. Dima and a Bad XOR// Contest: Codeforces - Codeforces Round #553 (Div. 2)// URL: https://codeforces原创 2021-08-11 09:08:53 · 329 阅读 · 0 评论 -
位运算笔记
位运算笔记==性质1:(x+y)=((x&y)<<1)+(x⊕y)\large (x+y)=((x\& y)<<1)+(x\oplus y)(x+y)=((x&y)<<1)+(x⊕y)==性质2:(x+y)(x+y)(x+y) 与(x⊕y)(x\oplus y)(x⊕y) 奇偶性相同性质3:(x+y)≥(x⊕y)(x+y)\ge (x\oplus y)(x+y)≥(x⊕y)性质4:(x+y)=(x⊕y)(x+y)=(x\op原创 2021-08-10 19:58:32 · 285 阅读 · 0 评论 -
D. Vasiliy‘s Multiset(01Trie)
D. Vasiliy’s Multiset(01Trie)支持插入,删除,异或最值。01−Trie01-Trie01−Trie 板题。// Problem: D. Vasiliy's Multiset// Contest: Codeforces - Codeforces Round #367 (Div. 2)// URL: https://codeforces.ml/problemset/problem/706/D// Memory Limit: 256 MB// Time Limit: 40原创 2021-08-03 16:30:29 · 250 阅读 · 0 评论 -
CF1055F. Tree and XOR(01字典序&贪心)
CF1055F. Tree and XOR(01字典序&贪心)思路:01字典序+++贪心。感觉这题挺妙的,因为空间的限制不可能开1e6×60×21e6\times 60\times 21e6×60×2的数组,所以考虑用两个数组表示当前层和上一层,每次用上一层统计一下该位000的可能情况,若小于KKK,说明该位答案只能为111,则所有的数都要走相反路径(就是代码中的preprepre更新),另外需要注意的是统计个数时,要用preprepre的儿子统计,因为之前的路径可能发生变化。#include原创 2020-07-26 19:33:42 · 427 阅读 · 0 评论 -
HDU.5536.Chip Factory(01字典树)
HDU.5536.Chip Factory(01字典树)思路:010101字典树+++暴力。考虑:求枚举i,ji,ji,j,因为i,ji,ji,j等价所以我们可以假设1≤i<j≤n1\le i<j\le n1≤i<j≤n然后对于kkk,我们用一个010101字典树维护查询。需要注意的是:先删除a[i],a[j]a[i],a[j]a[i],a[j],再查询,然后再将a[i],a[j]a[i],a[j]a[i],a[j]插入还原,继续下一个查询。对于删除我们动态维护一个sz[]sz[原创 2020-07-26 13:00:52 · 375 阅读 · 0 评论 -
异或与字典树的应用
异或与字典树的应用0.异或的相关性质.1.a⊕a=0,0⊕a=a⊕0=a,a∈N1.a\oplus a=0,0\oplus a=a\oplus0=a,a\in N1.a⊕a=0,0⊕a=a⊕0=a,a∈N2.a⊕b=b⊕a2.a\oplus b=b\oplus a2.a⊕b=b⊕a3.a⊕b=c⇔a⊕c=b⇔b⊕c=a3.a\oplus b=c\Leftrightarrow a\oplus c=b\Leftrightarrow b\oplus c=a3.a⊕b=c⇔a⊕c=b⇔b⊕c=a4.4.原创 2020-07-25 22:50:27 · 736 阅读 · 0 评论 -
线性基的整理.
线性基的一些性质:1.原序列中任意元素都可被线性基中一些元素异或得到.2.线性基中不存在异或和为0的非空子集.3.线性基元素个数唯一,在满足性质1下,元素个数最少.应用:1.求序列中选取一些元素的最大异或和.利用性质1+贪心从高位向低位选.2.求第kkk小异或和.将线性基修改一下,使得对应的位提供最高位的1,然后将kkk分解成二进制进行异或即可.#include<bits/stdc++.h>using namespace std;typedef long long ll;原创 2020-07-17 11:06:31 · 353 阅读 · 0 评论