Loading

HDU-1564 Play a game

Play a game

两个人进行博弈,给出 \(n*n\) 的格子,棋子起始点在角落,两个人交叉地进行操作,每次只能移动到一个相邻的格子(四个方向),并且访问过的格子不能再访问,如果走到不能走就算输,问先手必胜还是后手必胜

博弈

看了别人的题解才知道

相邻的格子可以成对成对地组合,这样就可以使得先手进入到一对格子的第一个,那么后手就一定可以找到成对的
格子的另一个,所以后手必胜

对于偶数 \(n\) 来说,直接成对组合即可,因此是先手必胜

对于奇数 \(n\) 来说,在第一行中,第一个已经被访问,所以第一行有偶数列,能成对;接下来有剩下偶数行,也能成对组合。所以是后手必胜

这位大哥写的挺好:https://www.cnblogs.com/kuangbin/archive/2013/07/22/3204654.html

#include <iostream>
using namespace std;

int main()
{
    int n;
    while(cin >> n && n)
    {
        if(n & 1) cout << "ailyanlu" << endl;
        else cout << "8600" << endl;
    }
    
    return 0;
}
posted @ 2022-04-26 14:41  dgsvygd  阅读(22)  评论(0编辑  收藏  举报