[poj2505]A multiplication game_博弈论

Posted shurak

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[poj2505]A multiplication game_博弈论相关的知识,希望对你有一定的参考价值。

A mutiplication game poj-2505

题目大意:给定一个数n和p,两个选手每次可以将p乘上[2,9]。最先使得p大于n的选手胜利。

注释:$1le nle 4294967295$,$p=1$。


想法

这个题比较新颖,我们可以直接推出必败态区间。

最后,附上丑陋的代码... ...

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
int main()
{
	int n;
	while(cin>>n)
	{
		bool count=false;
		while(n>9||count==true)
		{
			if(count%2==0)
				n=(n%9!=0)?n/9+1:n/9;
			else
				n=(n%2!=0)?n/2+1:n/2;
			count=!count;
		}
		if(n!=1)
			cout<<"Stan wins."<<endl;
		else
			cout<<"Ollie wins."<<endl;
	}
}

小结:好题。

以上是关于[poj2505]A multiplication game_博弈论的主要内容,如果未能解决你的问题,请参考以下文章

POJ 2505 A multiplication game

POJ2505 A multiplication game[博弈论]

POJ 2505 A multiplication game(找规律博弈/贪心)

POJ2505 A multiplication game(博弈)

[poj2505]A multiplication game_博弈论

「POJ2505」A multiplication game [博弈论]