题目:
小明和小红经常玩一个博弈游戏。给定一个n×n的棋盘,一个石头被放在棋盘的左上角。他们轮流移动石头。每一回合,选手只能把石头向上,下,左,右四个方向移动一格,并且要求移动到的格子之前不能被访问过。谁不能移动石头了就算输。假如小明先移动石头,而且两个选手都以最优策略走步,问最后谁能赢?
思路:
根据题意可知最后的胜负其实就是两人共走的步数的奇偶。
必胜的人只要一直转回形圈就行了,必败的人即使改变方向也不能影响步数的奇偶。
所以只用判断n的奇偶就行了。
代码:
#include <bits/stdc++.h> using namespace std; int main(){ int n; ios::sync_with_stdio(false); cin.tie(0); while(1){ cin>>n; if(!n) break; if(n&1) cout<<"Bob"<<endl; else cout<<"Alice"<<endl; } return 0; }
时间: 2024-10-20 21:53:12