尼姆博奕HDU 5795 A Simple Nim(SG打表找规律)
2017-10-17 17:42
363 查看
SG打表找规律
HDU 5795 题目连接
HDU 5795 题目连接
1 #include<iostream> 2 #include<cstdio> 3 #include<cmath> 4 #include<algorithm> 5 #include<cstring> 6 using namespace std; 7 #define MAXN 10000 8 int sg[MAXN],visit[MAXN]; 9 int getsg(int n) 10 { 11 int i,j; 12 if(sg !=-1) 13 return sg ; 14 memset(visit,0,sizeof(visit)); 15 for(i=n-1;i>=0;i--) 16 visit[sg[i]]=1; 17 for(i=1;i<n;i++) 18 for(j=1;j<n;j++) 19 if(n-i-j>0) 20 visit[getsg(i)^getsg(j)^getsg(n-i-j)]=1; 21 for(i=0;i<=MAXN;i++) 22 if(!visit[i]) 23 return sg =i; 24 } 25 /*int main() 26 { 27 /**²âÊÔ´ò±í**/ 28 29 /*memset(sg,-1,sizeof(sg)); 30 for(int i=0; i<50; i++) 31 { 32 printf("sg[%d] = %d\n",i,getsg(i)); 33 } 34 return 0; 35 }*/ 36 int main() 37 { 38 int t,n,x; 39 scanf("%d",&t); 40 while(t--) 41 { 42 scanf("%d",&n); 43 int ans=0; 44 for(int i=0;i<n;i++) 45 { 46 scanf("%d",&x); 47 if(x%8==0) 48 ans^=x-1; 49 else if((x+1)%8==0) 50 ans^=x+1; 51 else 52 ans^=x; 53 } 54 if(!ans) 55 printf("Second player wins.\n"); 56 else 57 printf("First player wins.\n"); 58 } 59 return 0; 60 }
相关文章推荐
- HDU 5795 A Simple Nim(SG打表找规律)
- HDU 5795 A Simple Nim(SG打表找规律)——2016 Multi-University Training Contest 6
- hdu 5795 A Simple Nim(SG打表找规律)
- HDU 5795 A Simple Nim 详解(SG打表找规律,博弈好题)
- HDU 5795 A Simple Nim 打表求SG函数的规律
- HDU 5795 A Simple Nim (SG函数+打表找规律)
- HDU 5795 A Simple Nim (博弈 打表找规律)
- HDU-5795 A Simple Nim(SG函数打表找规律)
- 【博弈+SG函数+打表找规律】HDU_5795_A Simple Nim
- hdu_5795_A Simple Nim(打表找规律的博弈)
- HDU-5795-A Simple Nim-博弈(SG函数)打表找规律
- HDU 3032 Nim or not Nim?(博弈,SG打表找规律)
- hdu5795 A Simple Nim 求nim求法,打表找sg值规律 给定n堆石子,每堆有若干石子,两个人轮流操作,每次操作可以选择任意一堆取走任意个石子(不可以为空) 或者选择一堆,把它分成三堆,每堆不为空。求先手必胜,还是后手必胜。
- HDU 3032 Nim or not Nim? SG打表找规律
- HDU 3032 Nim or not Nim?(Multi_SG,打表找规律)
- HDU 5795 A Simple Nim (找规律+sg函数+博弈)
- hdu 3032 Nim or not Nim? (SG打表找规律)
- HDU 3032 Nim or not Nim?(博弈 SG打表找规律)
- sg函数+nim博弈+打表_______A Simple Nim(hdu 5795 2016多校第六场)
- HDU 5795 A Simple Nim (sg函数 打表)