HDU 1730 Northcott Game

题目链接:HDU 1730 Northcott Game

尼姆博弈。

棋子两两相邻的状态是一个必败态,因为先手无论怎么动,后手都可以继续贴住对方的棋子,直到先手无路可走,那么就可以以每行黑白子之间的距离作为sg值,然后就转化成了尼姆博弈。

#include <iostream>

using namespace std;

int n,m,a,b;
int flag;

int main()
{
    while(cin >> n >> m)
    {
        flag = false;
        int ans = 0;
        for(int i = 0;i < n;i++)
        {
            cin >> a >> b;
            if(a > b)
                ans ^= a - b - 1;
            else
                ans ^= b - a - 1;
            //if(a - b != 1 && b - a != 1)
                //flag = !flag;
        }
        if(ans)
            cout << "I WIN!" << endl;
        else
            cout << "BAD LUCK!" << endl;
    }
    return 0;
}


你可能感兴趣的:(HDU 1730 Northcott Game)