Sicily 1087. A Funny Game

有点意思的博弈!

当n = 1或2时, 显然Alice赢~

当n > 3时, 分两种情况~

    a. n为偶数时, 由于coins为成一圈, 左右对称, 而且只能拿一个或者连续的两个coins, 所以, 当alice拿掉1~2个的coins, bob在其拿掉的coins的对称位置拿去同等数量的coins, 就能保证获胜, 所以此种情况, bob稳赢.

    b. n为奇数时, 还是alice先拿, 为了能制造出a的情况出现, 所以当alice拿完之后, bob只要拿掉相应的coins使之又成为对称的两边(alice拿一个, 则bob在i其对称位置拿掉两个, alice拿两个, 则bob在其对称位置拿掉1个), 则又回到情况a, bob稳赢.

所以只要n >= 3, bob总有办法稳赢.

// Problem#: 1087
// Author#: Reid Chan

#include <iostream>

using namespace std;

int main() {
    int num;
    while (cin >> num && num != 0) {
        if (num == 1 || num == 2) {
            cout << "Alice" << endl;
            continue;
        }
        cout << "Bob" << endl;
    }
    return 0;
}                                 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值