http://acm.hdu.edu.cn/showproblem.php?pid=3915
这道题目是和博弈论挂钩的高斯消元。本题涉及的博弈是nim博弈,结论是:当先手处于奇异局势时(几堆石子数相互异或为0),其必败。
思路在这里,最后由于自由变元能取1、0两种状态,所以,最终答案是2^k,k表示自由变元的个数。
#include
#include
#include
#inc...
分类:
其他好文 时间:
2014-11-02 09:23:23
阅读次数:
181
^异或:不同为1,相同为0。可以记为:“异”为不同,不同为1. C方式位操作总结: 设置特定的位用|; 清除特定的位用&; 取反特定的位用^; 取反所有的位用~; [引用自][1] [1]: http://blog.chinaunix.net/uid-25909...
分类:
编程语言 时间:
2014-11-01 23:21:24
阅读次数:
391
概率dp的典型题。用dp[j][i]表示第j个队第i场赢的概率。那么这场要赢就必须前一场赢了而且这一场战胜了可能的对手。这些都好想,关键是怎么找出当前要算的队伍的所有可能的竞争对手?这个用异或来算,从队伍编号的二进制表示中可以看出规律来(从二进制和相关运算里找规律也是一个重要的思考角度)。#incl...
分类:
其他好文 时间:
2014-11-01 20:31:40
阅读次数:
157
题目:给定一个整型数组,其中有两个数字只出现一次,其余的数字都出现两次,找出这两个只出现一次的数字.时间复杂度为O(n),空间复杂度为O(1).异或运算的特性:相等的两个整数异或的结果为0;一个整数与0进行异或运算的结果为其本身.基本思想:将这两个只出现一次的数字分到两个数组中,这样就很容易找到只出...
分类:
编程语言 时间:
2014-11-01 19:07:31
阅读次数:
138
基础的高斯消元解决异或方程问题。#include #include #include #include #include #include #include #include #include #include using namespace std; #define MP make_pair#de...
分类:
其他好文 时间:
2014-11-01 11:23:59
阅读次数:
156
利用高斯消元求解异或方程#include #include #include #include #include #include #include #include #include #include using namespace std; #define MP make_pair#define...
分类:
其他好文 时间:
2014-11-01 11:22:48
阅读次数:
241
最基本的高斯消元异或方程解决开关灯问题#include #include #include #include #include #include #include #include #include #include using namespace std; #define MP make_pair...
分类:
其他好文 时间:
2014-11-01 11:19:33
阅读次数:
203
交换两个变量的值,古老的话题,下面把各种方法做个总结。
为了方便,先定义两个变量。
int a = 1;
int b = 2;
一 借助临时变量
1 交换变量值
int tmp;
tmp = a; // tmp = 1
a = b; // a = 2
b = tmp; // b = 1
2 交换地址
int *p;
p = &a; // tmp->1
a = &...
分类:
编程语言 时间:
2014-10-31 10:16:04
阅读次数:
199
上一篇中我们分析了位的定义,这一篇中我们分析一下位的基本运算包括左右移,且,或,异或,取位,设位,清位,更新位...
分类:
编程语言 时间:
2014-10-30 00:15:51
阅读次数:
198