且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

HDU 1730 尼姆博弈

更新时间:2022-08-13 16:48:52

这题就是尼姆博弈的变形 可以讲两子之间的序列看做是 一堆一堆的数 至少取一个 根据尼姆博弈的

特点可知 如果是奇异局势的话 那么 (a1, a2, … , an)都有a1(+)a2(+)…(+)an =0

#include <iostream>
#include<cstdio>
using namespace std;

int main()
{
    int n,m,a,b,ans,s;
    while(cin>>n>>m)
    {
        for(int i=0; i<n; i++)
        {
            scanf("%d%d",&a,&b);
            s=a>b? a-b:b-a;
            s--;
            if(i<1)
                ans=s;
            else
                ans^=s;
        }
        if(ans)
            cout<<"I WIN!"<<endl;
        else
            cout<<"BAD LUCK!"<<endl;
    }
    return 0;
}