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;
}
posted @ 2021-10-22 17:36  Bellala  阅读(32)  评论(0)    收藏  举报