zoukankan      html  css  js  c++  java
  • poj 2311 Cutting Game 博弈论

    思路:求SG函数!!

    代码如下:

     1 #include<iostream>
     2 #include<cstdio>
     3 #include<cmath>
     4 #include<cstring>
     5 using namespace std;
     6 int sg[202][202];
     7 int getsg(int m,int n)
     8 {
     9     if(sg[m][n]!=-1) return sg[m][n];
    10     bool vis[200];
    11     memset(vis,0,sizeof(vis));
    12     for(int i=2;i<=m/2;i++) vis[getsg(i,n)^getsg(m-i,n)]=1;
    13     for(int i=2;i<=n/2;i++) vis[getsg(m,i)^getsg(m,n-i)]=1;
    14     int i=0;
    15     while(vis[i]) i++;
    16     return sg[m][n]=i;
    17 }
    18 int main()
    19 {
    20     memset(sg,-1,sizeof(sg));
    21     int m,n;
    22     while(cin>>m>>n) puts(getsg(m,n)?"WIN":"LOSE");
    23     return 0;
    24 }
    View Code
  • 相关阅读:
    CSS属性值一览
    CSS属性一览
    CSS选择器一览
    HTML颜色编码
    游戏
    数据库系统概念
    关于总结
    章节测试
    我的博客皮肤
    Emeditor所有快捷键操作
  • 原文地址:https://www.cnblogs.com/xin-hua/p/3316675.html
Copyright © 2011-2022 走看看