P4136 题解

· · 题解

结论简单但是证明巧妙的题,题解区竟然没有一个像样的证明,因此我写一篇题解。

upd at 2023.7.1: 这篇题解是在大规模撤下题解之前写的,我记得之前提交成题解了,但是不知道为什么也被撤了。我感觉这篇题解证明很清楚啊。

思路

结论:当 n 为奇数时后手赢,n 为偶数时先手赢。

证明:

首先将棋盘黑白染色,左上角为黑色。这样先手只会走到白格子,后手只会走到黑格子。将相邻的格子连接。这样形成了二分图。

代码

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int n;
    while(cin>>n && n) cout<<(n%2==0?"Alice":"Bob")<<'\n';
    return 0;
}