打表找规律失败,搜了一下原来是wythoff博弈

  1. /*--------------------------------------------------------------------------------------*/
  2.  
  3. #include <algorithm>
  4. #include <iostream>
  5. #include <cstring>
  6. #include <ctype.h>
  7. #include <cstdlib>
  8. #include <cstdio>
  9. #include <vector>
  10. #include <string>
  11. #include <queue>
  12. #include <stack>
  13. #include <cmath>
  14. #include <set>
  15. #include <map>
  16.  
  17. //debug function for a N*M array
  18. #define debug_map(N,M,G) printf("\n");for(int i=0;i<(N);i++)\
  19. {for(int j=;j<(M);j++){\
  20. printf("%d",G[i][j]);}printf("\n");}
  21. //debug function for int,float,double,etc.
  22. #define debug_var(X) cout<<#X"="<<X<<endl;
  23. #define LL long long
  24. const int INF = 0x3f3f3f3f;
  25. const LL LLINF = 0x3f3f3f3f3f3f3f3f;
  26. const double eps = 1e-;
  27. /*--------------------------------------------------------------------------------------*/
  28. using namespace std;
  29.  
  30. int N,M,T;
  31. int mem[][] = {};
  32. const double q = (+sqrt(5.0)) / 2.0;
  33.  
  34. void display(int x)
  35. {
  36. if(x==) return ;
  37. display(x>>);
  38. putchar((x&) + '');
  39. }
  40.  
  41. int sg(int a,int b)
  42. {
  43. if(mem[a][b] != -) return mem[a][b];
  44. if(a == && b == )return ;
  45. set<int> st ;
  46. for(int i=;i<=a;i++)
  47. {
  48. st.insert(sg(a-i,b));
  49. }
  50. for(int i=;i<=b;i++)
  51. {
  52. st.insert(sg(a,b-i));
  53. }
  54. for(int i=;i<=min(a,b);i++)
  55. {
  56. st.insert(sg(a-i,b-i));
  57. }
  58. int g = ;
  59. while(st.find(g) != st.end()) g++;
  60. return mem[a][b] = g;
  61. }
  62.  
  63. int Wythoff(int a,int b)
  64. {
  65. if( a > b) swap(a,b);
  66. int k = b - a;
  67. if(a == (int)(k*q)) return ;
  68. else return ;
  69. }
  70.  
  71. int main()
  72. {
  73. int a,b;
  74. while(~scanf("%d%d",&a,&b))
  75. {
  76. printf("%d\n",Wythoff(a,b));
  77. }
  78. }

poj1067-取石子游戏-wythoff博弈的更多相关文章

  1. POJ-1067取石子游戏,威佐夫博弈范例题/NYOJ-161,主要在于这个黄金公式~~

    取石子游戏 Time Limit: 1000MS   Memory Limit: 10000K              Description 有两堆石子,数量任意,可以不同.游戏开始由两个人轮流取 ...

  2. HDU 2516 取石子游戏(FIB博弈)

    取石子游戏 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submi ...

  3. 取石子游戏 BZOJ1874 博弈

    小H和小Z正在玩一个取石子游戏. 取石子游戏的规则是这样的,每个人每次可以从一堆石子中取出若干个石子, 每次取石子的个数有限制,谁不能取石子时就会输掉游戏. 小H先进行操作,他想问你他是否有必胜策略, ...

  4. 【BZOJ1413】取石子游戏(博弈,区间DP)

    题意:在研究过Nim游戏及各种变种之后,Orez又发现了一种全新的取石子游戏,这个游戏是这样的: 有n堆石子,将这n堆石子摆成一排.游戏由两个人进行,两人轮流操作,每次操作者都可以从最左或最右的一堆中 ...

  5. hdu 2516 取石子游戏 (Fibonacci博弈)

    取石子游戏 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submi ...

  6. POJ1067 取石子游戏 威佐夫博弈 博弈论

    http://poj.org/problem?id=1067 有两堆石子,数量任意,可以不同.游戏开始由两个人轮流取石子.游戏规定,每次有两种不同的取法,一是可以在任意的一堆中取走任意多的石子:二是可 ...

  7. POJ1067 取石子游戏

    Description 有两堆石子,数量任意,可以不同.游戏开始由两个人轮流取石子.游戏规定,每次有两种不同的取法,一是可以在任意的一堆中取走任意多的石子:二是可以在两堆中同时取走相同数量的石子.最后 ...

  8. poj 1067 取石子游戏 (威佐夫博弈)

    取石子游戏 http://poj.org/problem?id=1067 Time Limit: 1000MS   Memory Limit: 10000K       Description 有两堆 ...

  9. 「LuoguP2252」 取石子游戏(威佐夫博弈

    [P2252]取石子游戏 - 洛谷 题目背景 无 题目描述 有两堆石子,数量任意,可以不同.游戏开始由两个人轮流取石子.游戏规定,每次有两种不同的取法,一是可以在任意的一堆中取走任意多的石子:二是可以 ...

随机推荐

  1. 团队交流合作简单解决方案:TeamViewer远程控制&会议演示 + HyperCam屏幕录制(免费)

    一. 教程摘要 做开发,团队合作是少不了的.而在合作中,有一部分是花在交流讨论上,其中包括初期的任务分配,成员的进度汇报,以及资源和心得分享等.该教程介绍了两个免费的软件,搭配起来,适合人数不超过25 ...

  2. 使用easy ui过程中资料(网址)总结

    (1)JQuery Easy Ui 可装载组合框 - ComboBox (2)JQuery Easy Ui DataGrid (3)Easy ui combobox 多级联动 (四级联动) (4)jQ ...

  3. javascript中数组的map方法

    map方法原型:array1.map(callbackfn[, thisArg]) 参数: array1,必选. 一个数组对象.该函数一般用于数组对象 callbackfn,必选. 最多可以接受三个参 ...

  4. 关于PHP中Session文件过多的问题

    PHP的默认机制:每一次php请求,会有1/100的概率(默认值)触发“session回收”.如果“session回收”发生,那就会检查/tmp/sess_*的文件,如果最后的修改时间到现在超过了14 ...

  5. 【nginx】配置文件的优化

    1.编译安装过程优化 在编译Nginx时,默认以debug模式进行,而在debug模式下会插入很多跟踪和ASSERT之类的信息,编译完成后,一个Nginx要有好几兆字节.在编译前取消Nginx的deb ...

  6. 利用jsp和servlet,MySQL实现简易报表

    beans包和jdbc包代码不放了,麻烦 Service.java: package service; import java.sql.Connection;import java.sql.Resul ...

  7. C语言流程控制

    顺序结构 顺序结构是最常用的结构,即从上到下的执行语句. int num=5; num++; num=13; 条件结构 条件结构是当表达式为真的时候执行语句块,C语言提供了两种条件结构 if...el ...

  8. (转载)web测试方法总结

    web测试方法总结 一.输入框 1.字符型输入框: (1)字符型输入框:英文全角.英文半角.数字.空或者空格.特殊字符“~!@#¥%……&*?[]{}”特别要注意单引号和&符号.禁止直 ...

  9. poj 1144 Network 图的割顶判断模板

    Network Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 8797   Accepted: 4116 Descripti ...

  10. puppet安装

    server  xuesong1     10.152.14.85 client  xuesong      10.152.14.106   系统centos5.8   两台配置都配置 /etc/ho ...