POJ2505 A multiplication game(博弈)
Posted zwfymqz
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了POJ2505 A multiplication game(博弈)相关的知识,希望对你有一定的参考价值。
题意
开始时$p = 1$,每次可以乘$2 - 9$,第一个使得$p geqslant n$的人赢
问先手是否必胜
$1 <n <4294967295$
Sol
认真的推理一波。
若当前的数为$frac{n}{9} leqslant x leqslant n$,则先手必胜
若当前的数为$frac{n}{18} leqslant x leqslant frac{n}{9}$,则先手必败
若当前的数为$frac{n}{18 * 9} leqslant x leqslant frac{n}{18}$,则先手必胜
$dots dots dots dots dots dots dots dots dotsdotsdots dots $
然后就显然了,每次除$18$,最后判一下就行了。
然而不知道为啥用double才能过qwq。。。
#include<cstdio> #define LL long long using namespace std; int main() { double n; while(scanf("%lf", &n) != EOF) { while(n > 18) n = n / 18; if(n <= 9) puts("Stan wins."); else puts("Ollie wins."); } return 0; }
以上是关于POJ2505 A multiplication game(博弈)的主要内容,如果未能解决你的问题,请参考以下文章
POJ 2505 A multiplication game
POJ2505 A multiplication game[博弈论]
POJ 2505 A multiplication game(找规律博弈/贪心)
POJ2505 A multiplication game(博弈)