2 条题解
-
2hyh5609 LV 10 @ 2020-08-04 20:42:36
#include <bits/stdc++.h> using namespace std; #define maxn 33333 int n,q; int sg[maxn]; int cnt[303]={0}; void gao(int x,int p,int w) { int a,b,c=0,y=x; for(a=1;a<=q;a++) { if(y%p!=0) break; y/=p;c^=sg[y]; if(c<303) cnt[c]=x; } } void get_sg(int x) { int a,b,c; for(b=2,a=1;;a++) { if(x%b!=0) break; gao(x,b,a); b*=2; } for(b=3,a=1;;a++) { if(x%b!=0) break; gao(x,b,a); b*=3; } for(a=0;;a++) if(cnt[a]!=x) { sg[x]=a; return; } } int main(){ int T,t; scanf("%d",&T); for(t=1;t<=T;t++) { int a,b,c=0; memset(cnt,0,sizeof cnt); scanf("%d%d",&n,&q); for(a=1;a<=n;a++) get_sg(a); //for(a=1;a<=n;a++) printf("%d\n",sg[a]); for(a=1;a<=n;a++) { scanf("%d",&b); if(b==0) c^=sg[a]; } if(c==0) printf("lose\n"); else printf("win\n"); } return 0; }
-
02017-04-11 21:37:06@
- 1
信息
- ID
- 1993
- 难度
- 1
- 分类
- (无)
- 标签
- 递交数
- 43
- 已通过
- 32
- 通过率
- 74%
- 被复制
- 3
- 上传者