![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
位运算
ThreeWater-
这个作者很懒,什么都没留下…
展开
-
CF 15C
题意:给出n组xi,mi, 代表有n组数,x,x+1…x+m-1 求这所有数的^值 由于从1和从2开始连续异或值有规律。 1=1 1^2=3 1^2^3=0 1^2^3^4=4 1^2^3^4^5=1 … 四组一循环的规律.. 然后就是 ^的性质了,相同为0,那么S(x-1)^ S(x+m-1)=x^x+1^…..^x+原创 2016-08-22 20:32:30 · 252 阅读 · 0 评论 -
权势二进制-51nod
1个十进制整数被叫做权势二进制,当他的十进制表示的时候只由0或1组成。例如0,1,101,110011都是权势二进制而2,12,900不是。 当给定一个n的时候,计算一下最少要多少个权势二进制相加才能得到n。 只用找出这个n的数位最大的那一位,即为答案。 因为权势二进制可以再每一位都凑出1,所以只要找出数位最大值,即为需要多少个数。#include <cstdio>#include <alg原创 2016-11-21 20:48:40 · 775 阅读 · 1 评论 -
codeforces 757D状压dp
题意:给你一个01串,然后让你用杆划分,第一个杆前面和第二个杆后面的01串忽略,设中间的01串转化成10进制的最大值为MAX,若满足中间的01串有1-MAX中的所有值,则为一个有效划分,问有多少种划分方案。 用dp[i][j]表示在第i个位置划标杆,01串最大值为j的划分方案数。 那么直接转移就好了#include <bits/stdc++.h>using namespace std;#de原创 2017-02-23 09:54:44 · 474 阅读 · 0 评论 -
1~n的异或和
ll xor_n(ll n){ ll t=n&3; if (t&1) return t/2ull^1; return t/2ull^n;}原创 2017-08-17 09:39:13 · 2059 阅读 · 0 评论 -
异或的应用
从一堆其他数都出现偶数次,只有一个数出现奇数次,O(n)求这个数 异或一遍即可。从一堆其他数都出现偶数次,只有两个数出现奇数次,O(n)求这两个数。 先异或一遍,得a^b的值,然后找到一位为1的位置,则a位置上为1,b位置为0(或反之) 这样就能将所有数,分成两组 ,该位为0和该位为1的情况,分别异或一遍,得a,b原创 2017-08-17 09:42:31 · 255 阅读 · 0 评论