P4136 谁能赢呢? 题解
P4136 谁能赢呢?
思路
因为是上,下,左,右这四个方向。我们不妨把一回合(小明和小红各走一次)看成一个
当
注意:
虽然后手不一定这么走,但
当
后手无法移动,先手胜;
当
先手无法移动,后手胜;
当
后手无法移动,先手胜;
当
先手无法移动,后手胜。
而且,二分博弈论的模型也大概是这样的。
所以,根据二分博弈论:若起点
因为是二人轮流,所以在
最大匹配中均为匹配点,先手胜;
在
所以,我们可以发现:
当
当
所以,很容易得到代码:
#include<bits/stdc++.h>
using namespace std;int n;
int main()
{
while(cin>>n)
{
if(n==0) return 0;
if(n%2==0) cout<<"Alice\n";//偶数,先手胜
else cout<<"Bob\n";//奇数,后手胜
}
return 0;
}