hdu1536Nim

sg函数打表的基础应用,第一道ac的sg函数打表题纪念下,直接上代码:

hdu1536题目连接

 #include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#define maxn 100
using namespace std;
#define N 10000
int k,visit[N],f[N],sg[N],nu;
void getsg(int n)
{
int i,j;
//memset(sg,0,sizeof(sg));
for(i=;i<=n;i++)
{
//memset(visit,0,sizeof(visit));
for(j=;j<=;j++)
visit[j]=;
for(j=;j<nu;j++)
if(i>=f[j])visit[sg[i-f[j]]]=;
else break;
for(j=;j<=n;j++)
{
if(!visit[j])
{
sg[i]=j;
break;
}
}
}
}
int main()
{
int i,j,ans,n,m;
while(scanf("%d",&nu)&&nu)
{
for(i=;i<nu;i++)
scanf("%d",&f[i]);
sort(f,f+nu);
scanf("%d",&k);
getsg(); while(k--)
{
ans=;
scanf("%d",&m); for(i=;i<=m;i++)
{
scanf("%d",&n);
ans^=sg[n];
}
if(ans==)
printf("L");
else
printf("W"); }
printf("\n");
}
return ;
}
上一篇:windows使用nginx实现网站负载均衡测试实例


下一篇:将公司的主要项目从eclipse迁移到android studio for mac环境(2)