hdu1536Nim
sg函数打表的基础应用,第一道ac的sg函数打表题纪念下,直接上代码:
1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<cmath> 5 #include<algorithm> 6 #define maxn 100 7 using namespace std; 8 #define N 10000 9 int k,visit[N],f[N],sg[N],nu; 10 void getsg(int n) 11 { 12 int i,j; 13 //memset(sg,0,sizeof(sg)); 14 for(i=0;i<=n;i++) 15 { 16 //memset(visit,0,sizeof(visit)); 17 for(j=0;j<=100;j++) 18 visit[j]=0; 19 for(j=0;j<nu;j++) 20 if(i>=f[j])visit[sg[i-f[j]]]=1; 21 else break; 22 for(j=0;j<=n;j++) 23 { 24 if(!visit[j]) 25 { 26 sg[i]=j; 27 break; 28 } 29 } 30 } 31 } 32 int main() 33 { 34 int i,j,ans,n,m; 35 while(scanf("%d",&nu)&&nu) 36 { 37 for(i=0;i<nu;i++) 38 scanf("%d",&f[i]); 39 sort(f,f+nu); 40 scanf("%d",&k); 41 getsg(10000); 42 43 while(k--) 44 { 45 ans=0; 46 scanf("%d",&m); 47 48 49 for(i=1;i<=m;i++) 50 { 51 scanf("%d",&n); 52 ans^=sg[n]; 53 } 54 if(ans==0) 55 printf("L"); 56 else 57 printf("W"); 58 59 } 60 printf("\n"); 61 } 62 return 0; 63 }
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步