
位运算
w4149
无
展开
-
位运算搜索之N皇后
#include <cstdio> #include <cstdlib> #include <ctime>long sum = 0, lim;void test(long row, long ld, long rd){ if (row != lim){ long pos = lim & ~(row | ld | rd);//可以放的位置 while (pos原创 2017-07-10 15:06:13 · 223 阅读 · 0 评论 -
求二进制数中1的个数之平行算法
#include <cstdio> /* int ans[1000000];int main(){ freopen("1.out", "w", stdout); int idc = 0; long long n = 0xffff; for(long long i=1; i<n; i<<=1){ if(n & i) ans[++idc] = 1;原创 2017-07-10 15:12:49 · 465 阅读 · 0 评论 -
Graph (spfa 位运算分集合)
思路: #include <vector> #include <queue> #include <cstdio> #include <cstring> #include <cstdlib> #include <iostream> #include <algorithm> #define LL long long #define N 100005 #define M 300005 #define i原创 2017-08-25 16:37:55 · 236 阅读 · 0 评论 -
big (Trie)
10.4思路: 每次操作相当于把前面几个数都在二进制意义下左移一位,然后与后面的所有数异或起来,再找x。 对手做的是将 x在二进制下左移一位,把超出二进制下n位的部分接到最后。而异或 i个数后左移等价于开始时先把前 i个数左移一位,再异或起来。 这是因为,这个运算只是二进制位上的位置变化,而对于按位异或时,二进制位置上的规律变化之后,不同数间的每个二进制位还是对的上的,而按位异或只要保证位置原创 2017-10-04 21:01:52 · 272 阅读 · 0 评论