题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4994
题意:有n堆石子,每个堆有Ai个石头,,两人轮流拿石子,可以取一堆中的一颗到多颗,但是必须取完其中一堆才能开始取下一堆,最后谁拿石子,谁赢
思路:模拟几遍容易发现,谁先取得大于1的石子堆,谁就拥有了主动权,就能获得胜利,换句话说,当碰到的都是1时,那么两个人都没有选择权,根据石子堆数确定谁赢...
分类:
其他好文 时间:
2015-08-04 11:19:24
阅读次数:
120
DescriptionNim is a 2-player game featuring several piles of stones. Players alternate turns, and on his/her turn, a player’s move consists of removin...
分类:
其他好文 时间:
2015-07-15 22:32:52
阅读次数:
132
poj 2068 Nim(博弈dp) —— black的专栏 —— waShaXiu...
分类:
其他好文 时间:
2015-07-02 12:16:37
阅读次数:
103
题意:
给k堆石子,两人轮流向某一堆中拿,拿的个数要从给定的一个集合中取,没石子拿的输,问先手必胜还是必败。
分析:
grundy值计算法的入门题。
代码:
//poj 2960
//sep9
#include
#include
using namespace std;
int s[128];
int grundy[10024];
int maxx;
int num;
int get...
分类:
编程语言 时间:
2015-07-01 12:25:55
阅读次数:
164
题目大意:给定nn个石子,两人轮流操作,规则如下:
轮到先手操作时:若石子数<p<p,那么只能添加pp个石子,否则可以拿走pp的倍数个石子
轮到后手操作时:若石子数<q<q,那么只能添加qq个石子,否则可以拿走qq的倍数个石子
拿走所有石子的人胜利,问先手是否必胜,或输出游戏会永远进行下去令d=gcd(p,q)d=gcd(p,q),那么若dd不能整除nn,游戏将会永远进行下去
否则将p...
分类:
其他好文 时间:
2015-06-18 19:55:21
阅读次数:
130
【题目链接】:click here~~
【题目大意】:
#1163 : 博弈游戏·Nim游戏
时间限制:10000ms
单点时限:1000ms
内存限制:256MB
描述
今天我们要认识一对新朋友,Alice与Bob。
Alice与Bob总是在进行各种各样的比试,今天他们在玩一个取石子的游戏。
在这个游戏中,Alice和Bob放置了...
分类:
其他好文 时间:
2015-06-09 08:31:05
阅读次数:
178
解题报告:题目的意思很简单!就是一个Nim博弈!但是不是问谁获胜,本题而是问的获胜的方法有多少种!首先,我们必须知道,因为是起手,对于M堆扑克,最多有M种获胜的方法!对res
= M1 ^ M2 ^ M3 …. ^ Mm取异或(^)得res,由异或的性质知:res
^ Mi = ( M1 ^ M2 …^M(i-1) ^ M(i+1) ^ … ^Mm ) ,也就是说res对任意一个数取^可以...
分类:
编程语言 时间:
2015-06-03 10:01:05
阅读次数:
178
自从省赛结束了,好久都做过博弈题了,感觉都快忘了。今天找了几题练练手,在做过程中,感觉这道题挺有意思的。题目的意思是说,在Nim游戏中,先手有几种方式让 Nim 和变为0。(不知道Nim游戏的,请参考:这里)
其实我觉得这道题就是披着博弈的外衣,然后来考查你异或运算符(^)的使用的。在做题之前,我们想要了解异或运算符(^)的一个重要的性质:
现在我们有三个整数a, b, c:
我...
分类:
其他好文 时间:
2015-05-26 09:17:21
阅读次数:
187
思路:如果全部扑克牌数目异或的结果ans为0,则必输,输出0。否则,必须要给对方一个P状态,可以对所有扑克堆进行逐个排查,将ans^a[i]就可以得到除了a[i]之外其他扑克数的异或结果tmp,目的就是要使得tmp为0,那么肯定要从a[i]堆中拿走一些牌使得剩下的牌数异或tmp为0。可能出现的情况(...
分类:
编程语言 时间:
2015-05-14 16:23:56
阅读次数:
149