poj2975 Nim

2024-06-15 04:08
文章标签 nim poj2975

本文主要是介绍poj2975 Nim,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Nim博弈,问有多少种胜利的方法,

因为答案最多只有n,令ans=a1^a2^...^an,如果需要构造出异或值为0的数,
而且由于只能操作一堆石子,所以对于某堆石子ai,现在对于ans^ai,就是除了ai以外其他的石子
的异或值,如果ans^ai< ai,那么对于ai的话,是可以减小到ans^ai的值。将结果统计。

Source CodeProblem: 2975		User: 455707843
Memory: 756K		Time: 391MS
Language: G++		Result: Accepted
Source Code
#include <iostream>using namespace std;#define oo (~0U >> 1)
#define MAXN 1000 + 10int temp[MAXN];void input()
{int n;while (cin >> n, n){int sum = 0;for (int i = 0; i < n; i++){cin >> temp[i];sum ^= temp[i];}if (!sum){cout << 0 << endl;}else{int ans = 0;for (int i = 0; i < n; i++){if ((sum ^ temp[i]) < temp[i]){ans++;}}cout << ans << endl;}}
}int main()
{input();return 0;
}


这篇关于poj2975 Nim的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1062384

相关文章

hdu 3032 Nim or not Nim? 博弈

题目大意: Alice和Bob轮流取N堆石子,每堆S[i]个,Alice先,每一次可以从任意一堆中拿走任意个石子,也可以将一堆石子分为两个小堆。先拿完者获胜。(1 ≤ N ≤ 10^6, 1 ≤ S[i] ≤ 2^31 - 1) 做到这道题目我想到了以前的一道题目和尼姆博弈尼姆博弈--------->>>>点击打开链接(以前的题目) 可以看到S[i]的值可能非常大,如果计算每一堆

HDU 1730 Northcott Game NIM游戏

其实水题一道,你只需要把矩阵分成每一行一个游戏,每一行只要他们紧邻着那么黑色的必输,然后进行nim异或就行了。。但是我因为没加abs错了4遍。。。 Description Tom和Jerry正在玩一种Northcott游戏,可是Tom老是输,因此他怀疑这个游戏是不是有某种必胜策略,郁闷的Tom现在向你求救了,你能帮帮他么?  游戏规则是这样的:    如图所示,游戏在一个n行

HDU 1849 Rabbit and Grass NIM游戏

Description 大学时光是浪漫的,女生是浪漫的,圣诞更是浪漫的,但是Rabbit和Grass这两个大学女生在今年的圣诞节却表现得一点都不浪漫:不去逛商场,不去逛公园,不去和AC男约会,两个人竟然猫在寝食下棋……  说是下棋,其实只是一个简单的小游戏而已,游戏的规则是这样的:  1、棋盘包含1*n个方格,方格从左到右分别编号为0,1,2,…,n-1;  2、m个棋子放在棋盘

博弈论详解 1(基本理论定义 和 Nim 游戏)

公平博弈游戏 一般是两个玩家,轮流操作。是否能够必胜只和当前局面相关,不与现在是轮到哪个玩家相关(说白了就是不分黑白棋子,格点也不分黑白,都一样)。固定了开始状态后,可能的局面数是有限的。游戏一定会在有限步内结束 怎么才能赢? 必胜局面与必败局面 我们定义当前的局面对于先手(指的是要对当前局面进行操作的人,下面对先手的定义也相同)是必胜的为 N N N 局面,必败为 P P P 局面。

博弈论(Nim 游戏)

公平组合游戏ICG 若—个游戏满足: 由两名玩家交替行动;在游戏进程的任意时刻,可以执行的合法行动与轮到哪名玩家无关;不能行动的玩家判负; 则称该游戏为一个公平组合游戏。 NIM博弈属于公平组合游戏,但城建的棋类游戏,比如围棋,就不是公平组合游戏。因为围棋交战双方分别只能落黑子和白子,胜负判定也比较复杂,不满足条件 2 2 2 和条件 3 3 3。 可以看出,公平组合游戏不存在平局,而且

POJ 2975 Nim(尼姆博弈的变形)

题目大意 有 n(1≤n≤1000) 堆石子,每堆石子数量为 1 到 1,000,000,000 之间的一个整数。两人玩游戏。每回合,游戏者必须从某堆中取走至少一个石子,取走最后一个石子的人获胜。问先手第一步有多少种走法使得他/她获胜 解题思路 Nim 游戏的简单变形 说明:下面的 '^' 符号表示 “异或” 的意思 先求出所有的石子数量的 Nim 和,设为 sum。 对于

POJ 2975 Nim题解

【题意】: 给定一种Nim状态(相当于含N堆石头),求能有几种方法能通过调整某一堆石头的状态(只准取出),使新的Nim状态为必败态。(或者说求出所给的Nim游戏状态有多少种方法能够赢) 【分析】: Nim游戏是什么,参见百度百科:百度百科_Nim 在证明Nim游戏的SG函数的“根据这个判断被判为N-position的局面一定可以移动到某个P-position”命题时,有这么一段证明:对于某

BNU17047-nim博弈

题目:题目链接   题意:题目意思很明确。就是现在有N个数字,每次一个人上去,可以把一个数字换成它的一个因子替换。直到有一 个人使得所有的数字的乘积为1的时候,这个人就赢了。   分析:因为我们知道:对于任意一个数字A,我们都可以把这个数字写成A=p1^q1 * p2^q2 * ……* pn^qn (pi是质 数)、所以我们每次的操作就相当于任选一个数字。然后从中拿走若干素数。这样的话

Nim游戏博弈

Nim游戏的概述: 还记得这个游戏吗? 给出n列珍珠,两人轮流取珍珠,每次在某一列中取至少1颗珍珠,但不能在两列中取。最后拿光珍珠的人输。 后来,在一份资料上看到,这种游戏称为“拈(Nim)”。据说,它源自中国,经由被贩卖到美洲的奴工们外传。辛苦的工人们,在工作闲暇之余,用石头玩游戏以排遣寂寞。后来流传到高级人士,则用便士(Pennies),在酒吧柜台上玩。 最有名的玩法,是把十二枚便士放成3、

UVA10165 Stone Game【Nim游戏】

Jack and Jim are playing an interesting stone game. At the beginning of the game there are N pile(s) of stones. Each pile has Pi (i = 1..N, 1 ≤ Pi ≤ 2 ∗ 10^9) stones. They take turns to take away some