2014/7/10
我是彩笔系列
怎么说怎么错,怎么做怎么错。
变形了下,输入N个数,把每个数m,1 - m的素数个数 sum 求出来....然后裸模板。
PS:因为比赛时不断网,我就从网上拉了段素数打表 + 裸妮姆博奕 的代码,混在一起就过了。
#include<iostream>
#include<cstring>
#include<cstdio>
#include<ctime>
#include<algorithm>
using namespace std;
const int N =5005000;
bool visit[5005000];
int prime[5005000];
int s[N];
void init_prim()
{
memset(visit, true, sizeof(visit));
int num = 0;
for (int i = 2; i <= N; ++i)
{
if (visit[i] == true)
{
num++;
prime[num] = i;
}
for (int j = 1; ((j <= num) && (i * prime[j] <= N)); ++j)
{
visit[i * prime[j]] = false;
if (i % prime[j] == 0) break;
}
}
}
int main()
{
int n,i,t,a,sum,flag;
memset(prime, 0, sizeof(prime));
init_prim();
s[1]=0;
for(int i = 2;i <= N; i++)
{
s[i]=s[i-1]+visit[i];
}
while(~scanf("%d",&t))
{
while(t--)
{
scanf("%d",&n);
sum=flag=0;
for(i=0;i<n;i++)
{
scanf("%d",&a);
sum^=s[a];
if(s[a]>1)
flag=1;//ÅжÏÊÇ·ñ¶¼Îª1
}
if((sum==0&&flag)||(sum&&flag==0))
printf("Lost\n");
else
printf("Win\n");
}
}
return 0;
}