思路
这是一道博弈题,最优策略是高桥的 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;
}
标签:case,输出,硬币,nikkei2019ex,题解,结果,高桥,青木
From: https://www.cnblogs.com/zjh114/p/17534140.html