NYOJ135 取石子(二)(尼姆博奕+巴什博奕)

2023-10-05 23:42

本文主要是介绍NYOJ135 取石子(二)(尼姆博奕+巴什博奕),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

描述

小王喜欢与同事玩一些小游戏,今天他们选择了玩取石子。

游戏规则如下:共有N堆石子,已知每堆中石子的数量,并且规定好每堆石子最多可以取的石子数(最少取1颗)。

两个人轮流取子,每次只能选择N堆石子中的一堆,取一定数量的石子(最少取一个),并且取的石子数量不能多于该堆石子规定好的最多取子数,等哪个人无法取子时就表示此人输掉了游戏。

假设每次都是小王先取石子,并且游戏双方都绝对聪明,现在给你石子的堆数、每堆石子的数量和每堆石子规定的单次取子上限,请判断出小王能否获胜。

输入

第一行是一个整数T表示测试数据的组数(T<100)
每组测试数据的第一行是一个整数N(1

样例输入

2
1
1000 1
2
1 1
1 1

样例输出

Lose
Lose

思路

这道题在普通的尼姆博弈基础上,增加了一个限制,限制了每一堆石子能取多少个

那么这时候的奇异局势就是:用每一堆进行巴什博奕的状态来进行尼姆博奕,如果异或结果是0,那么就达到了奇异局势。

代码

#include <stdio.h>
int main()
{int t,n,a,b;scanf("%d",&t);while(t--){int ans=0,cnt=0;scanf("%d",&n);for(int i=0; i<n; i++){scanf("%d%d",&a,&b);ans^=a%(b+1);} if(ans==0) puts("Lose");else puts("Win");}return 0;
}

这篇关于NYOJ135 取石子(二)(尼姆博奕+巴什博奕)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

poj1067(威佐夫博奕)

题意:给两堆石头,两种操作,1、在任意一堆中去任意个石头;2、在两堆中去相同多个石头 必败状态为(0,0)(1,2)(3,5)(4,7)(6,10 )  ( 8 ,13 ) (9,15)、(11,18)、(12,20)。。。。。 然后请参照http://blog.csdn.net/u013509299/article/details/37954679 代码如下: #include<io

简单取石子游戏~博弈

很坑爹的小游戏,至于怎么坑爹,嘎嘎~自己研究去吧~! #include<stdio.h>#include<windows.h>#include<iostream>#include<string.h>#include<time.h>using namespace std;void Loc(int x,int y);/*定位光标*/void Welcome(); /*创建欢迎界面*/

NYOJ 737 石子合并(一)(环形)

OJ题目:http://acm.nyist.net/JudgeOnline/problem.php?pid=737 参考资料:http://wenku.baidu.com/view/b4dbe923482fb4daa58d4b84.html (感觉解释的很好) 描述     有N堆石子排成一排,每堆石子有一定的数量。现要将N堆石子并成为一堆。合并的过程只能每次将相邻的两堆石子堆成一堆,每次

【数论 排序 滑动窗口】1040. 移动石子直到连续 II

本文涉及知识点 排序 质数、最大公约数、菲蜀定理 C++算法:滑动窗口总结 LeetCode1040. 移动石子直到连续 II 在一个长度 无限 的数轴上,第 i 颗石子的位置为 stones[i]。如果一颗石子的位置最小/最大,那么该石子被称作 端点石子 。 每个回合,你可以将一颗端点石子拿起并移动到一个未占用的位置,使得该石子不再是一颗端点石子。 值得注意的是,如果石子像 stones

AcWing 282. 石子合并

必看的视频讲解↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ 【E28【模板】区间DP 石子合并——信息学竞赛算法】 合并过程总开销等于红色数字总和,可以理解为花费的总体力! f数组的含义是f【i】【j】是从第i堆石子开始到第j堆石子的花费体力最小值 如何理解三层for呢? 第一层for是控制区间长度len,第二层for是控制区间起点位置i,第三层for是控制区间

石子合并-环(区间dp)c++

刚才的《石子合并》问题是把石子放成一排,如果石子放成一个环,第 N 堆和第 1 堆相邻,又该怎么做呢? 我们要想办法把它变成之前放成一排的问题,可以发现只要我们把 a1​,a2​,a3​,⋯,aN​a2​,a3​,a4​,⋯,aN​,a1​a3​,a4​,a5​,⋯,aN​,a1​,a2​…aN​,a1​,a2​,⋯,aN−1​ 这 N 种放成一排的情况都考虑清楚,取其中的最优解,就

石子归并---区间型动态规划

题目描述 Description 有n堆石子排成一列,每堆石子有一个重量w[i], 每次合并可以合并相邻的两堆石子,一次合并的代价为两堆石子的重量和w[i]+w[i+1]。问安排怎样的合并顺序,能够使得总合并代价达到最小。 输入描述 Input Description 第一行一个整数n(n<=100) 第二行n个整数w1,w2...wn  (wi <= 100) 输出描述 Output

hdu 1846 Brave Game 巴什博奕

Description 十年前读大学的时候,中国每年都要从国外引进一些电影大片,其中有一部电影就叫《勇敢者的游戏》(英文名称:Zathura),一直到现在,我依然对于电影中的部分电脑特技印象深刻。  今天,大家选择上机考试,就是一种勇敢(brave)的选择;这个短学期,我们讲的是博弈(game)专题;所以,大家现在玩的也是“勇敢者的游戏”,这也是我命名这个题目的原因。  当然,除了

HDU 1517 A Multiplication Game 巴什博弈

题意:2 个人玩游戏,给定一个数n,从 1 开始,轮流对数进行累乘一个数(2~9中取), 直到第一次等于或超过n为赢. 思路:1)找规律 如果n是 2 ~ 9 ,Stan 必胜。 如果输入是 10~18 ,不管第一次Stan 乘的是什么,Stan肯定在 2 ~ 9 之间, 无论stan乘以什么,Ollie乘以大于1的数都都能超过 10 ~ 18 中的任何一个数。Ollie 必胜

HDU 2188 选拔志愿者 巴什 博弈

其实就是巴什博弈,只要倒着想就行,水题     Description 对于四川同胞遭受的灾难,全国人民纷纷伸出援助之手,几乎每个省市都派出了大量的救援人员,这其中包括抢险救灾的武警部队,治疗和防疫的医护人员,以及进行心理疏导的心理学专家。根据要求,我校也有一个奔赴灾区救灾的名额,由于广大师生报名踊跃,学校不得不进行选拔来决定最后的人选。经过多轮的考核,形势逐渐明朗,最后的名额将在