• hdu 1848 博弈


    比较简单的sg函数的应用,将每一堆的sg值求出,则总游戏的sg值为3个异或起来。

     1 #include <iostream>
     2 #include <cstring>
     3 #include <cstdio>
     4 using namespace std;
     5 
     6 const int N = 1001;
     7 const int M = 20;
     8 int sg[N];
     9 int f[M];
    10 bool mex[M];
    11 
    12 void init()
    13 {
    14     f[0] = 1;
    15     f[1] = 2;
    16     for ( int i = 2; i < M; i++ )
    17     {
    18         f[i] = f[i - 1] + f[i - 2];
    19     }
    20 }
    21 
    22 void get()
    23 {
    24     init();
    25     for ( int i = 0; i < N; i++ )
    26     {
    27         memset( mex, 0, sizeof(mex) );
    28         for ( int j = 0; i >= f[j]; j++ )
    29         {
    30             mex[sg[i - f[j]]] = true;
    31         }
    32         for ( int j = 0; j < M; j++ )
    33         {
    34             if ( !mex[j] )
    35             {
    36                 sg[i] = j;
    37                 break;
    38             }
    39         }
    40     }
    41 }
    42 
    43 int main ()
    44 {
    45     get();
    46     int a, b, c;
    47     while ( scanf("%d%d%d", &a, &b, &c) != EOF )
    48     {
    49         if ( !a && !b && !c ) break;
    50         if ( sg[a] ^ sg[b] ^ sg[c] )
    51         {
    52             puts("Fibo");
    53         }
    54         else
    55         {
    56             puts("Nacci");
    57         }
    58     }
    59     return 0;
    60 }
  • 相关阅读:
    jq常用操作
    Vue过滤器
    NodeJS跨域问题
    js获取url参数(通用方法)
    jq动画实现左右滑动
    vue-cli3.0 gui(一)
    微信小程序无法定位
    java连接数据库报了ssl连接的警告
    node——module.exports
    node——Commonjs
  • 原文地址:https://www.cnblogs.com/huoxiayu/p/4730342.html
Copyright © 2020-2023  润新知