【POJ 2484】A Funny Game 博弈找规律

来源:互联网 发布:新淘宝店如何提高销量 编辑:程序博客网 时间:2024/05/25 21:36

题目

给定一个n个石子的环,石子编号为1n.
每次可以进行这样两个操作中的一个:
①取一颗石子;
②取相邻编号的石子;
谁先取完谁胜.
1n106

分析

首先要读懂题意.

应该是找规律,从小数据开始分析.
n=1时,Alice.
n=2时,Alice.
n3时,
情况一:当n为偶数时,Alice怎么取,Bob就中心对称地取,必然是Bob胜.
情况二:当n为奇数时,
当Alice取奇数颗时,Bob取偶数颗,使得刚好分割成两块相同的,回归到情况一.
当Alice取偶数颗时,Bob取奇数颗,使得刚好分割成两块相同的,回归到情况一.
综上所述,当n3时,Bob必胜.

于是这就是一道无脑的水题了.

代码

#include <cstdio>#include <cctype>int n;inline int read(void){    int x=0; char c=getchar();    for (;!isdigit(c);c=getchar());    for (;isdigit(c);c=getchar()) x=x*10+c-'0';    return x;}int main(void){    for (;;)    {        if (!(n=read())) break;        printf("%s\n",n<3?"Alice":"Bob");    }    return 0;}
0 0