HDU.1847 Good Luck in CET-4 Everybody! ( 博弈论 SG分析)
题意分析
简单的SG分析
题意分析
简单的nim 博弈 博弈论快速入门
代码总览
#include <cstdio>
#include <cstring>
#define nmax 1005
using namespace std;
int maybe[] = {
1,
2,
4,
8,
16,
32,
64,
128,
256,
512,
1024};
int sg[nmax];
int f[nmax];
void getSG()
{
sg[
0] =
0;
for(
int i =
1;i<nmax;++i){
memset(f,
0,
sizeof f);
for(
int j =
0;j<
10;++j){
if(i-maybe[j] <
0)
break;
f[sg[i-maybe[j]]] =
1;
}
for(
int j =
0;;++j){
if(!f[j]){
sg[i] = j;
break;
}
}
}
}
int main()
{
getSG();
int n;
while(
scanf(
"%d",&n) != EOF){
if(sg[n]==
0)
printf(
"Cici\n");
else printf(
"Kiki\n");
}
return 0;
}
转载请注明原文地址: https://www.6miu.com/read-68291.html