HDU 取(2堆)石子游戏 2177 威佐夫博弈+尼姆博弈

#include    取2堆
#include 
using namespace std;
//取任意一堆的时候,为什么不对量少的那一堆取呢,因为(k2-k1)*t == k1 k1减小,这个等式永远成立不了
int main()
{
    double t=(sqrt(5)+1)/2.0;
	int m,n,k,i,k1,k2,temp;
	while (cin>>m>>n,m+n)
	{
		k=n-m;
		if ((int)(k*t)==m)
		{
			cout<<"0"<0;i--)
			{
                int a=m;
				int b=i;
				if(a>b)
				{
                    temp=a;
					a=b;
					b=temp;
				}
				if((int)((b-a)*t) == a)
                    cout<
#include      //取m堆
#include 
using namespace std;

int main()
{
    int n,a[2000],i,m,j;
    while (cin>>n,n)
    {
	    for(i=0,m=0;i>a[i];   
			m^=a[i];
		}	
		  if (m==0)
		  {
			   cout<<"No"<j)
				   {
					   cout<

#include      //HDU 1849
#include 
using namespace std;

int main()
{
    int n,a[1000],i,m,j;
    while (cin>>n,n)
    {
	    for(i=0,m=0;i>a[i];   
			m^=a[i];
		}	
		  if (m!=0)
		  {
			   cout<<"Rabbit Win!"<j)
// 				   {
// 					   cout<


你可能感兴趣的:(ACM,博弈)