码迷,mamicode.com
首页 > 其他好文 > 详细

[poj2505]A multiplication game_博弈论

时间:2018-09-09 22:08:10      阅读:139      评论:0      收藏:0      [点我收藏+]

标签:lse   大于   ...   win   注释   end   algo   bool   ==   

A mutiplication game poj-2505

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

注释:$1\le n\le 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_博弈论

标签:lse   大于   ...   win   注释   end   algo   bool   ==   

原文地址:https://www.cnblogs.com/ShuraK/p/9615007.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!