AT_nikkei2019ex_h 题解

蒟中之蒻 / 2023-07-07 / 原文

思路

这是一道博弈题,最优策略是高桥的 k 一直是 1,青木的 k 一直是 0,可以保证拿走的硬币不超过剩下的硬币,这样每次两人都取完后拿走硬币的数量是 8^1 + 8^0,结果是 9,那么就用 N mod 9,得出的结果就是剩下的硬币。

如果结果是 0,那么最后拿的就是青木,输出 Lose

如果结果是 2、4、6,都比 8^1 也就是 8 小,每人只能拿一个,由于是偶数,最后拿的就是青木,输出 Lose

如果结果是 1、3、5、7,都比 8^1 也就是 8 小,每人只能拿一个,由于是奇数,最后拿的就是高桥,输出 Win

如果结果是 8,也就是 8^1,高桥一次性拿走,输出 Win

代码

#include<iostream>
using namespace std;
int main()
{
    long long n;
    cin>>n;
    switch(n%9){
        case 1:
        case 3:
        case 5:
        case 7:
        case 8:cout<<"Win";break;
        default:cout<<"Lose";break;
    }
    return 0;
}