SG函数和SG定理
Fibonacci again and again
利用SG函数求出每一堆的SG值,如果三个值的异或和为零 先手必败态,否则,先手必胜态。
#include <bits/stdc++.h>
#define scanf_d(a) scanf("%d",&a)
#define scanf_dd(a,b) scanf("%d%d",&a,&b)
#define maxn 1000+10
#define N 20
//#define DEBUG
using namespace std;
int s[maxn],sg[maxn],fib[N]; void getsg( int n) {
memset(sg,,sizeof(sg));
for ( int i = ;i <= n; i++) {
memset(s,,sizeof(s));
for ( int j = ; fib[j] <= i && j <= N; j++) s[sg[i-fib[j]]]=;
for ( int j = ; ; j++) { if(!s[j]) { sg[i] = j; break; } }
}
} int main()
{
#ifdef DEBUG
freopen("Text.txt","r",stdin);
#endif // DEBUG
int n,m,k;
fib[] = fib[] = ;
for( int i = ; i <= ; i++) fib[i] = fib[i-] + fib[i-];
getsg();
while(~scanf("%d%d%d",&n,&m,&k),m||n||k) {
if(sg[n]^sg[m]^sg[k]) puts("Fibo");
else puts("Nacci");
}
return ;
}
SG函数和SG定理的更多相关文章
- SG函数和SG定理【详解】
在介绍SG函数和SG定理之前我们先介绍介绍必胜点与必败点吧. 必胜点和必败点的概念: P点:必败点,换而言之,就是谁处于此位置,则在双方操作正确的情况下必败. N点:必胜点 ...
- (转载)--SG函数和SG定理【详解】
在介绍SG函数和SG定理之前我们先介绍介绍必胜点与必败点吧. 必胜点和必败点的概念: P点:必败点,换而言之,就是谁处于此位置,则在双方操作正确的情况下必败. N点:必胜点 ...
- 组合游戏 - SG函数和SG定理
在介绍SG函数和SG定理之前我们先介绍介绍必胜点与必败点吧. 必胜点和必败点的概念: P点:必败点,换而言之,就是谁处于此位置,则在双方操作正确的情况下必败. N点:必胜点 ...
- SG函数和SG定理(Sprague_Grundy)
一.必胜点和必败点的概念 P点:必败点,换而言之,就是谁处于此位置,则在双方操作正确的情况下必败. N点:必胜点,处于此情况下,双方操作均正确的情况下必胜. 必胜点和必败点的性质: ...
- SG函数&&SG定理
必胜点和必败点的概念: P点:必败点,换而言之,就是谁处于此位置,则在双方操作正确的情况下必败. N点:必胜点,处于此情况下,双方操作均正确的情况下必胜. 必胜点和必败点的 ...
- SG定理与SG函数
一个蒟蒻来口胡$SG$函数与$SG$定理. 要是发现有不对之处望指教. 首先我们来了解一下$Nim$游戏. $Nim$游戏是公平组合游戏的一种,意思是当前可行操作仅依赖于当前局势. 而经典$Nim$游 ...
- SG函数 专题练习
[hdu1536][poj2960]S-Nim 题意 题意就是给出一个数组h,为每次可以取石子的数目. 然后给你n堆石子每堆si.求解先手能不能赢? 分析 根据\(h\)数组预处理出\(sg[i]\) ...
- 博弈论进阶之SG函数
SG函数 个人理解:SG函数是人们在研究博弈论的道路上迈出的重要一步,它把许多杂乱无章的博弈游戏通过某种规则结合在了一起,使得一类普遍的博弈问题得到了解决. 从SG函数开始,我们不再是单纯的同过找规律 ...
- Wannafly挑战赛23 T2游戏 SG函数
哎,被卡科技了,想了三个小时,最后还是大佬给我说是\(SG\)函数. \(SG\)函数,用起来很简单,证明呢?(不可能的,这辈子都是不可能的) \(SG\)定理 游戏的\(SG\)函数就是各个子游戏的 ...
随机推荐
- xpath 在firefox,chrome中正常,在requests中不正常的解决。
经多次测试发现: lxml中的etree格式化以后,直接使用firefox或chrome提取的xpath检索不到内容. 主要是因为tbody # 车种xpathczxx = '/html/body/t ...
- inout口在modelsim仿真的方法
//主要是// 和**********部分是关键 1 `timescale 1ns/1ns module tb(); reg main_clk; :] addr; reg FPGA_CS0;//FPG ...
- No space left on device Linux系统磁盘空间已满
1. 删除系统日志等 删除生成 core,mbox等文件 #find / -name core|xargs rm –rf 删除日志 2.重起机器
- HTML 基于 Python 实现分页功能
前面的话: 1. 网页引用的bootstrap 中的表格,所以需要引入样式类 2. 第一次写文章,不喜勿喷.有不足的地方,可留言我改正,在此先谢过. HTML代码: <!DOCTYPE html ...
- Java冒泡法和二分法
最近去一家公司面试,手贱在人家CTO面前自告奋勇写了一把冒泡法,结果在交换数据的时候出了洋相,回家反思,写下如下代码,对自己算是一个鞭策,得到的教训是不要眼高手低,低调前行. package com. ...
- ionic 实现仿苹果手机通讯录搜索功能
前言 由于之前做的SRM移动应用采用的是ionic1.x框架进行开发的,由于性能方便的诟病,导致用户体验不是很友好,于是想着怎么样去提高应用的性能问题.此时刚好ionic3.x框架已发布,由于ioni ...
- python基础(字典)
#实现同样的功能,代码越少越好#非空即真,非0即真#not 取反 a = []b = ' 'c = ()d = 0e = Noneif a: print('真的')else: print('假的') ...
- 制作一个老旧C118的GSM便携式测试设备
对于OsmocomBB也是被国内外大神玩得不亦乐乎.什么重定向攻击,中间人攻击.都是N年前的东西咯.当然鄙人不会这些.对于地下市场无非就是获取对方短信小则“老.虎.机”,大则支付宝.某日翻了翻“咸”鱼 ...
- mysql数据库的备份
有时会遇到需要重装虚拟机的情况,这时候之前创建好的数据库就需要备份啦,等重新装好虚拟机直接导入就可以正常使用. 数据库备份大体分为两步: 第一步.导出数据库,因为是备份,会将所有的数据库导出,因此需要 ...
- ubuntu mariadb installation
sudo apt-get install mariadb-server[sudo] password for wadmin: Reading package lists... DoneBuilding ...