NYOJ 135 取石子(二) (sg规律)

来源:互联网 发布:ketchup mac 编辑:程序博客网 时间:2024/06/05 11:39

取石子(二)
时间限制:3000 ms | 内存限制:65535 KB
难度:5

描述

小王喜欢与同事玩一些小游戏,今天他们选择了玩取石子。游戏规则如下:共有N堆石子,已知每堆中石子的数量,并且规定好每堆石子最多可以取的石子数(最少取1颗)。两个人轮流取子,每次只能选择N堆石子中的一堆,取一定数量的石子(最少取一个),并且取的石子数量不能多于该堆石子规定好的最多取子数,等哪个人无法取子时就表示此人输掉了游戏。假设每次都是小王先取石子,并且游戏双方都绝对聪明,现在给你石子的堆数、每堆石子的数量和每堆石子规定的单次取子上限,请判断出小王能否获胜。

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

/* ***********************************************Author       : AnICoo1Created Time : 2016-07-27-08.55 WednesdayFile Name    : D:\MyCode\2016-7月\2016-7-27.cppLANGUAGE     : C++Copyright  2016 clh All Rights Reserved************************************************ */#include<stdio.h>#include<math.h>#include<string.h>#include<stack>#include<set>#include<map>#include<queue>#include<vector>#include<iostream>#include<algorithm>#define MAXN 1010000#define LL long long#define INF 0xfffffff#define mem(x) memset(x,0,sizeof(x))#define PI acos(-1)#define eps 1e-8using namespace std;//headint main(){    int t;cin>>t;    while(t--)    {        int n;cin>>n;        int ans=0;        for(int i=1;i<=n;i++)        {            int a,b;cin>>a>>b;            ans^=(a%(b+1));        }        if(ans)            printf("Win\n");        else            printf("Lose\n");    }    return 0;}
0 0