gym101124 M. A multiplication game(博弈,找规律)
https://codeforces.com/gym/101124
题意:
两个人轮流将 \(p\) 乘一个 \([2,9]\) 的整数,初始 \(p\) 为 \(1\),先让 \(p\ge n\) 的人赢
现给定整数 \(n\),问谁赢
思路:
找规律。
2-9,先手胜 9
10-18,后手胜 9 × 2
19-162,先手胜 9 × 2 × 9
163-324,后手胜利 9 × 2 × 9 × 2
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
signed main()
{
ll n; while(cin >> n)
{
ll po = 1; while(po < n) po *= 18;
po /= 18;
if(n <= po * 9) cout << "Stan wins." << endl;
else cout << "Ollie wins." << endl;
}
return 0;
}

浙公网安备 33010602011771号