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

题目

给定一个 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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值