取石子(二)

时间限制:3000 ms  |  内存限制:65535 KB

难度:5

描述

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

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

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

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

输入

第一行是一个整数T表示测试数据的组数(T<100)
每组测试数据的第一行是一个整数N(1<N<100),表示共有N堆石子,随后的N行每行表示一堆石子,这N行中每行有两个数整数m,n表示该堆石子共有m个石子,该堆石子每次最多取n个。(0<=m,n<=2^31)

输出

对于每组测试数据,输出Win表示小王可以获胜,输出Lose表示小王必然会败。

样例输入

2

1

1000 1

2

1 1

1 1

样例输出

Lose

Lose

提示

注意下面一组测试数据
2
1 1 
2 2
正确的结果应该是Win
因为小王会先从第二堆石子中取一个石子,使状态变为
1 1
1 2
这种状态下,无论对方怎么取,小王都能获胜。

//此为Nim游戏和Bash Game的组合,我们做如下分解:mi = (ni+1)*si + ri;

//1)若所有ri异或的值为0(也即每一种大小(2^k)的子堆石子都是偶数,此为平衡Nim游戏),对手在小王于第i堆取任意石子ti时,

//都按照Bash Game的必胜规则取相应的(ni+1-ti),从而确保第i堆剩下ri时,小王为先手,这样,再根据Nim游戏的必胜法则,小王必败

//2)若不为0,小王先根据n堆石子(第i堆石子为ri)的必胜法则来取一次石子,即达到Nim平衡,之后每当对手于第i堆取任意石子ti时,小王都取(ni+1-ti)

//这样重复下去,最终会是平衡的Nim游戏,由于此时对手是先手,所以小王必胜

#include <stdio.h>
int main()
{
int T,N,n,m,ans;
scanf("%d",&T);
while(T--)
{
scanf("%d",&N);
ans = ;
while(N--)
{
scanf("%d%d",&n,&m);
ans ^= (n%(m+));
}
printf("%s\n",ans?"Win":"Lose");
}
return ;
}

NYOJ-取石子(二)的更多相关文章

  1. nyoj 取石子(七) 环形博弈

    手推前几个可以知道规律:n>2时是P态,n<=2时是N态. 注意:石子拿去后,剩下的石子是分散的. AC代码 #include <cstdio> #include <cm ...

  2. nyoj 135 取石子(二) 【NIM】

    取石子(二) 时间限制:3000 ms  |  内存限制:65535 KB 难度:5 描写叙述 小王喜欢与同事玩一些小游戏.今天他们选择了玩取石子. 游戏规则例如以下:共同拥有N堆石子.已知每堆中石子 ...

  3. NYOJ 23.取石子(一)

    取石子(一) 时间限制:3000 ms  |  内存限制:65535 KB 难度:2   描述 一天,TT在寝室闲着无聊,和同寝的人玩起了取石子游戏,而由于条件有限,他/她们是用旺仔小馒头当作石子.游 ...

  4. nyoj 585 取石子(六) 【Nim】

    取石子(六) 时间限制:1000 ms  |  内存限制:65535 KB 难度:3 描写叙述 近期TopCoder的PIAOYI和HRDV非常无聊,于是就想了一个游戏,游戏是这种:有n堆石子,两个人 ...

  5. nyoj 833-取石子(七) (摆成一圈,取相邻)

    833-取石子(七) 内存限制:64MB 时间限制:1000ms 特判: No 通过数:16 提交数:32 难度:1 题目描述: Yougth和Hrdv玩一个游戏,拿出n个石子摆成一圈,Yougth和 ...

  6. {HDU}{2516}{取石子游戏}{斐波那契博弈}

    题意:给定一堆石子,每个人最多取前一个人取石子数的2被,最少取一个,最后取石子的为赢家,求赢家. 思路:斐波那契博弈,这个题的证明过程太精彩了! 一个重要的定理:任何正整数都可以表示为若干个不连续的斐 ...

  7. Games:取石子游戏(POJ 1067)

    取石子游戏 Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 37662   Accepted: 12594 Descripti ...

  8. nim3取石子游戏 (威佐夫博弈)

    http://www.cnblogs.com/jackge/archive/2013/04/22/3034968.html 有两堆石子,数量任意,可以不同.游戏开始由两个人轮流取石子.游戏规定,每次有 ...

  9. 【poj1067】 取石子游戏

    http://poj.org/problem?id=1067 (题目链接) 题意 有两堆石子,数量任意,可以不同.游戏开始由两个人轮流取石子.游戏规定,每次有两种不同的取法,一是可以在任意的一堆中取走 ...

随机推荐

  1. Unsplash.it - 实用的图片占位符,支持个性化设置

    Unsplash.it 是一个使用漂亮的图像作为占位符的工具.只要把你的图像尺寸(宽与高)放到网址后面的参数中,你会得到一个占位符.你可以很容易地得到一个随机图像或者是一个模糊图像.也支持获取灰度图像 ...

  2. (转)轻松学习JavaScript三:JavaScript与HTML的结合

    摘自:http://blog.csdn.net/erlian1992 HTML中的JavaScript脚本必须位于<script>与</script>标签之间,JavaScri ...

  3. CXF:通过WebService上传文件,包括大文件的处理

    参考网上文章,用CXF发布上传文件接口,并上传大文件的测试. 框架:spring3.1+cxf2.7.6 1.定义文件类实体 import javax.activation.DataHandler; ...

  4. C/C++构建系统 -工具汇总

    关于构建系统可以先参考百科 http://en.wikipedia.org/wiki/List_of_build_automation_software http://www.drdobbs.com/ ...

  5. Vysor:在电脑里控制你的安卓手机

    Vysor是一款可以使用电脑操作安卓手机的谷歌浏览器插件,在chrome中安装了Vysor插件以后,用户就可以使用电脑打开手机的屏幕,在手机的屏幕界面中,用户不仅可以观看,甚至可以使用电脑直接操作手机 ...

  6. 优化MySchool数据库(存储过程)

    什么是“存储过程”: ---- 数据库中,用于存储“业务逻辑”的技术!(T-SQL代码当做数据一样保存到数据可) 语法 : [if exists(select * from sysobjects wh ...

  7. Mac wifi已打开但尚未连接到网络

    把网络偏好设置  里面的询问新网络 关闭了   然后  重启电脑  试一下  应该就可以了

  8. OC NSFileManager(文件路径操作)

    OC NSFileManager(文件路径操作) 初始化 NSFileManager * fm = [NSFileManager defaultManager]; 获取当前目录 [fm current ...

  9. 使用UltraEdit实现从DOS文件到UNIX文件的批量转换

    最近把公司从SVN切到GIT下,因为大多同事在Windows下开发,又碰到换行符问题,找到一个批量转换方法 打开UE->在文件中替换,把^p替换成^n,然后设置好要替换的文件和路径,就开始替换吧 ...

  10. 第一个WPF应用程序

    WPF 全称为 Windows Presentation Foundation. 核心特性: WPF使用一种新的XAML(Extensible Application Markup Language) ...