您的位置:首页 > 其它

HDOJ 几道博弈水题

2012-08-24 11:04 387 查看
HDOJ 1847 SG函数入门(不用也行)基本博弈的理解。

#include<iostream>
using namespace std;

int main()
{
int n,list[1111];
memset( list,0,sizeof(list) );
for( int i=1;i<=1000;i++ )
for( int k=1;i-k>=0;k*=2 )
{
if( list[i-k]==0 )
list[i]=1;
}

while( scanf("%d",&n)!=EOF )
{
if( list
)
printf( "Kiki\n" );
else
printf( "Cici\n" );
}
return 0;
}


HDOJ 1849 Nim的简单变形

#include<iostream>
using namespace std;

int main()
{
int n;
while( scanf("%d",&n)!=EOF&&n )
{
int num,xo=0;
for( int i=0;i<n;i++ )
{
scanf( "%d",&num );
xo^=num;
}
if( xo )
printf( "Rabbit Win!\n" );
else
printf( "Grass Win!\n" );
}
return 0;
}


HDOJ 1850 Nim性质的理解

#include<iostream>
using namespace std;

int main()
{
int n;
while( scanf("%d",&n)!=EOF&&n )
{
int num[111],xo=0;
for( int i=0;i<n;i++ )
{
scanf( "%d",&num[i] );
xo^=num[i];
}
if( xo==0 )
{
printf( "0\n" );
continue;
}
int ans=0;
for( int i=0;i<n;i++ )
if( num[i]>=(num[i]^xo) )
ans++;
printf( "%d\n",ans );
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  list ini