![](https://img-blog.csdnimg.cn/b2d4d48434fb43819b9733ad043096c0.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
位运算
文章平均质量分 50
位运算
EschatonAyane
风会带走我曾经存在过的证明
展开
-
【51nod 2493】二进制距离之和【位运算】
linklinklink分析:n2n^2n2暴力比较 可以将两数xorxorxor后看有多少个111复杂度 O(n2logn)O(n^2logn)O(n2logn)也可以把每个数二进制拆开 若该位有cnt1cnt_1cnt1个111 cnt0cnt_0cnt0个000 最后就会产生cnt0×cnt1cnt_0\times cnt_1cnt0×cnt1个不同复杂度 O(nlogn)O(nlogn)O(nlogn)CODE:#include<iostream>#includ.原创 2022-02-25 20:59:32 · 449 阅读 · 0 评论 -
【51nod 3062】n皇后问题 V2【位运算dfs】
linklinklink分析:位运算加速nnn皇后可以用三个二进制数记录每行上 每列以及两条斜线的占用情况 那么三个或起来 就得到了该行的所有禁位 取反就是所有可以放的位得出每行可以放的位后 用lowbitlowbitlowbit即可找出放的位置CODE:#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>#define reg registerus.原创 2022-02-25 20:38:19 · 345 阅读 · 0 评论 -
【51nod P2527】Or 和 Sum【位运算】
linklinklink分析:众所周知 a∣b+a&b=a+ba|b+a\&b=a+ba∣b+a&b=a+b判断a&ba\&ba&b为111的位在a∣ba|ba∣b也为111即可CODE:#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>#define reg registerusing namespa.原创 2022-02-19 16:41:00 · 145 阅读 · 0 评论 -
【51nod P3395】n位格雷码【位运算】
linklinklink分析:nnn位格雷码最多有2n2^n2n个对于一个二进制数xxx 若xxx的第iii位与第i+1i+1i+1位相同 则格雷码的第i+1i+1i+1位为000 否则为111很显然 这就是异或CODE:#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>#define reg registerusing namespace st..原创 2022-02-19 16:01:55 · 196 阅读 · 0 评论 -
【51nod P3047】位移运算【位运算】
linklinklink分析:如果aaa可以变成bbb 那么去掉前导后缀000的b′b'b′ 一定是aaa的子串判断子串对aaa进行>>>>>>得到a′a'a′ 若a′&b′=b′a'\&b'=b'a′&b′=b′ 说明b′b'b′为111的位在a′a'a′也是111看a′xor b′a'xor~b'a′xor b′得到的ccc 若ccc最低位的111比b′b'b′最高位的111高 b′b'b′才为a′a'a′的子.原创 2022-02-19 15:27:40 · 187 阅读 · 0 评论 -
【51nod P2653】区间xor【位运算】
linklinklink分析:记录[1,b][1,b][1,b]和[1,a−1][1,a-1][1,a−1]的异或值A,BA,BA,B 和前缀和类似 答案就是A xor BA~xor~BA xor BCODE:#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>#define reg registerusing n.原创 2022-02-19 09:30:49 · 392 阅读 · 0 评论 -
【51nod P2102】或减与【位运算】
linklinklink分析:或减与 就是异或 也可以直接算CODE:#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>#define reg registerusing namespace std;typedef long long ll;ll a,b;int main(){ scanf("%lld%lld",&a,&b);.原创 2022-02-19 09:12:46 · 289 阅读 · 0 评论 -
【51nod P3216】授勋【位运算】
linklinklink分析:勋章都是222的幂次 所以就是问每个数的二进制有多少个111CODE:#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>#define reg registerusing namespace std;typedef long long ll;int n,x; int main(){ scanf("%d",&..原创 2022-02-19 08:56:54 · 160 阅读 · 0 评论 -
【51nod P2106】一个奇数次【位运算】
linklinklink分析:异或一个数出现偶数次 它们的异或值就为000 否则为这个数CODE:#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>#define reg registerusing namespace std;typedef long long ll;int n,x,ans; int main(){ scanf("%d",&.原创 2022-02-19 08:49:39 · 280 阅读 · 0 评论