摘要: hdu 2869 Paper Cutting Game链接:http://acm.hdu.edu.cn/showproblem.php?pid=2869View Code 1 #include <iostream> 2 #include <cmath> 3 #include <cstring> 4 #include <cstdio> 5 #include <string> 6 #include <stdlib.h> 7 #include <algorithm> 8 using namespace std; 9 阅读全文
posted @ 2013-04-30 22:35 淡墨æ末央 阅读(172) 评论(0) 推荐(0) 编辑
摘要: 链接:http://acm.hdu.edu.cn/showproblem.php?pid=4203题意: 有一堆数量为 N 金币, 每次可以拿 M^x (x=0,1,2,... )个,问先手如果能获胜, 第一次最少拿几块, 不能胜则输出0;思路: sg打表找规律sg=0则为必败点, sg=1, 只要拿1个就可以了, 如果sg=2, 那么就拿M个;View Code 1 #include <iostream> 2 #include <cmath> 3 #include <cstring> 4 #include <cstdio> 5 #include 阅读全文
posted @ 2013-04-30 20:17 淡墨æ末央 阅读(246) 评论(0) 推荐(0) 编辑
摘要: 有这样一种取石子游戏: 有若干堆石子,每堆石子的数量都是有限的,合法的操作是“选择一堆石子并拿走若干颗(不能不拿)”;现在有两种判定胜负的方式: 1: 如果轮到某个人时所有的石子堆都已经被拿空了,则判负; 2: 如果轮到某个人时把所有的石子堆都拿空了, 使下一个人没石子可拿,则判负;面对第一种判负规则时: 局面是必败态当且仅当所有堆硬币的数量都异或起来结果为0,即a1^a2^...^an=0; 下面是简单说明. 首先:最终局面只有一个,就是全0,异或仍然是0; 然后:对于某个局面(a1,a2,...,an),若a1^a2^...^an!=0(不等号就用C++的习惯用!=来表示了),一... 阅读全文
posted @ 2013-04-30 14:13 淡墨æ末央 阅读(281) 评论(0) 推荐(0) 编辑