考虑到Bouton定理的证明过程,设n个数的Nim和(异或和)为X,其最高位的1在第k位,那么n个数中一定有个y的第k为也是个1.将y的数量变为X xor y,那么n的数的Nim和为0,便转为先手必败局面。所以先手有多少种取法,就看n个数里面有多少个y,满足二进制的第k为是个1。 1 #includ...
分类:
编程语言 时间:
2015-04-11 20:37:06
阅读次数:
189
转载:技术生活杂烩-迟到的博客 位移动运算符: >表示右移. 右移一位表示除2. 位运算: 位运算符包括: 与(&)、非(~)、或(|)、异或(^) &:当两边操作数的位同时为1时,结果为1,否则为0。如1100&1010=1000 | :当两边操作数的位有一边为1时,结果为1,否则为0。如1100...
分类:
编程语言 时间:
2015-04-11 16:12:06
阅读次数:
200
这是由n个巴什博奕的游戏合成的组合游戏。对于一个有m个石子,每次至多取l个的巴什博奕,这个状态的SG函数值为m % (l + 1)。然后根据SG定理,合成游戏的SG函数就是各个子游戏SG函数值的异或和。 1 #include 2 3 int main() 4 { 5 int T, n; ...
分类:
其他好文 时间:
2015-04-11 16:07:34
阅读次数:
109
yougth和他的朋友们
时间限制:10000 ms | 内存限制:65535 KB
难度:3
描述yougth的朋友们各自有一个魔法值x,现在yougth想从这些朋友中挑出一些,使得这些朋友的魔法值的异或和大于等于m。这样的组合共有多少种?
输入多组数据
每组数据首先两个数n和m,表示朋友的个数和要大于等于的值,((1 ≤ n ≤ 40, 0 ≤ m ≤...
分类:
编程语言 时间:
2015-04-11 11:49:28
阅读次数:
203
原理:异或运算加密:#include#include#include#define KEY '@'int main(int argc, char * argv[]){ FILE *fp; FILE *coded; char codedname[40]; char ch; ...
分类:
编程语言 时间:
2015-04-10 19:59:57
阅读次数:
162
问题:有一根27厘米的细木杆,在第3厘米、7厘米、11厘米、18厘米、23厘米这五个位置上各有一只蚂蚁。木杆很细,不能同时通过两只蚂蚁。开始时,蚂蚁的头朝左还是朝右是任意的,它们只会朝前走或调头,但不会后退。当任意两只蚂蚁碰头时,两只蚂蚁会同时调头朝反方向走。假设蚂蚁们每秒钟可以走一厘米的距离。编写程序,求所有蚂蚁都离开木杆的最小时间和最大时间。
思路:因为没有告诉蚂蚁的初始朝向,所以要...
分类:
其他好文 时间:
2015-04-10 17:58:05
阅读次数:
119
题意:
给n个数,然后每次可以选择一对尚存活的数,将其异或和加和到答案中,然后删掉其中一个数,直到只剩一个数为止。
题解:
花样教人理解最小生成树,一片苦心啊,不会最小生成树的可以从这开始理解2333。
对了,数据范围有点大,完全图 kruscalkruscal 多个 log log 估计过不去。
代码:
#include
#include
#include
#include...
分类:
其他好文 时间:
2015-04-09 17:35:15
阅读次数:
173
题目大意异或Prim。思路没开long long WA了一次你敢信?CODE#define _CRT_SECURE_NO_WARNINGS#include
#include
#include
#include
#define MAX 2010
#define INF 0x3f3f3f3f
using namespac...
分类:
其他好文 时间:
2015-04-09 17:30:46
阅读次数:
131
题目大意:给定n个数,每次选择两个数,将两数的异或值计入答案,并删掉其中一个,反复如此直到只剩一个数为止,求答案的最大值
每次将选择的两个数连边,那么显然会得到一棵树
用Prim算法求最大生成树即可
#include
#include
#include
#include
#define M 2020
using namespace std;
int n,a[M];
long long...
分类:
其他好文 时间:
2015-04-09 10:33:10
阅读次数:
161