您的位置:首页 > 其它

hdu 1536 - SG函数模板

2017-12-23 13:26 281 查看
题目链接:点击打开链接

题解思路:SG模板自行百度

#include<bits/stdc++.h>
using namespace std;
const int mx = 1e4+10;
int n,m;
int st[mx],sg[mx];
void get_sg()
{
bool vis[mx];
memset(sg,0,sizeof(sg));
for(int i=1;i<mx;i++){
memset(vis,0,sizeof(vis));
for(int j=0;st[j]<=i&&j<n;j++)
vis[sg[i-st[j]]] = 1;//标记后继SG函数
for(int j=0;j<mx;j++)//找mex
if(!vis[j]){
sg[i] = j;
break;
}
}
}
int main()
{
while(scanf("%d",&n)&&n){
for(int i=0;i<n;i++){
scanf("%d",st+i);
}
sort(st,st+n);
get_sg();
for(int i=1;i<=10;i++) cout << sg[i] << endl;
scanf("%d",&m);
int a,b;
while(m--){
int sum = 0;
scanf("%d",&a);
while(a--){
scanf("%d",&b);
sum ^= sg[b];
}
putchar(sum?'W':'L');
}
puts("");
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: