BZOJ 2463 谁能嬴呢?

来源:互联网 发布:如何安装apache服务器 编辑:程序博客网 时间:2024/06/04 19:51

题目来源:BZOJ 2463

 美妙的证明:
当时一开始看到这个题时,下意识感觉这题肯定和奇偶性有关,但是想了半天也没发现什么规律,于是上网搜题解...
对于偶数的棋盘,一定可以被1*2的矩形覆盖,于是先手必胜,因为先手可以看作是从矩形的前一端移到后一端,而后手则要从后一端移动到一个新矩形的前一端,这样先手每一次都有路径可走,即移动到矩形的下一端。而对于奇数的棋盘,当先手从左上角移动一步后,剩余的棋盘又可以被1*2的矩形覆盖,则按照前面的分析可等效为先后手对调,因此后手必胜。知道了这个道理后,代码就很简单了。
#include <iostream>#include <stdio.h>#include <algorithm>#include <math.h>using namespace std;int main(){    int n;    while(~scanf("%d",&n)&&n!=0)    {        printf("%s\n",(n&1)==1?"Bob":"Alice");    }    return 0;}

原创粉丝点击