2011年8月20日

HDU 1517

摘要: 这道题真的是想了很久,一直束缚在SG函数上了,殊不知有的时候寻找P-position和N-position的规律更加方便。看了大牛的代码,寻找必胜区间,还有就是&位运算把自己搞糊涂了,惭愧。。。。以后判断奇偶数还是用%的好。。。转自:http://blog.pfan.cn/cruxd/22157.html这题好X难。 题目大概意思是:两人轮流乘一个2-9的数,从1开始乘,求谁的乘积先大于N。 如果是加法就好做了。凑到剩下的数能整除11,然后对称着加。问题是乘法。所以寻找必胜点(段)。以1000为例。 1000 | 999 ... 112 | 若占住999到112,则对手必胜。必须让对手 阅读全文

posted @ 2011-08-20 20:44 lonelycatcher 阅读(873) 评论(0) 推荐(0) 编辑

HDU 1536 poj 2960 博弈 SG函数

摘要: 坑爹啊,一到简单的SG博弈题,折磨了我一个下午,竟然是在函数的递归调用中使用了全局的标志数组进行初始化。。。。View Code 1 /* 2 * Author:lonelycatcher 3 * Problem:HDU 1536 4 * Type:组合博弈,GS函数 5 */ 6 #include <iostream> 7 #include<stdio.h> 8 #include<algorithm> 9 #include<string.h>10 #include<cstdlib>11 using namespace std;12 阅读全文

posted @ 2011-08-20 17:49 lonelycatcher 阅读(314) 评论(0) 推荐(0) 编辑

HDU 1850 Being a Good Boy in Spring Festival

摘要: 这是一道简单的Nim游戏组合博弈问题,对于Nim游戏的某个位置(x1,x2,x3...),当且仅当他们的部分nim和等于0(即各个值的异或),则当前位于P点,所以对于第一步,只要有一个xi大于其余元素的异或值,则xi可以改变成为其余元素的异或值(因为是大于),则这就是一种可能的选择View Code 1 /* 2 * Author:lonelycatcher 3 * problem:HDU 1850 Being a Good Boy in Spring Festival 4 * Type:博弈 5 */ 6 #include <iostream> 7 #include<std 阅读全文

posted @ 2011-08-20 11:29 lonelycatcher 阅读(195) 评论(0) 推荐(0) 编辑

导航