链接:

http://acm.hdu.edu.cn/showproblem.php?pid=1846

首先来玩个游戏,引用杭电课件上的:

(1) 玩家:2人;
(2) 道具:23张扑克牌;
(3) 规则:
游戏双方轮流取牌;
每人每次仅限于取1张、2张或3张牌;
扑克牌取光,则游戏结束;
最后取牌的一方为胜者。

想一下。。

首先申明一点,博弈的讨论是在大家都玩的最好的情况下讨论的。(如果2个玩家智商有差别,那就没法讨论了~~~~开个玩笑哈。)

介绍概念:P点 即必败点,某玩家位于此点,只要对方无失误,则必败;

N点 即必胜点,某玩家位于此点,只要自己无失误,则必胜。

定理:

一、 所有终结点都是必败点P(上游戏中,轮到谁拿牌,还剩0张牌的时候,此人就输了,因为无牌可取);

二、所有一步能走到必败点P的就是N点;

三、通过一步操作只能到N点的就是P点;

自己画下图看看。

x :0  1  2  3  4  5  6  7  8  9  10。。。

pos:P   N N  N  P N  N  N  P N   N 。。。

所以若玩家甲位于N点。只要每次把P点让给对方,则甲必胜;

反之,若玩家甲位于P点,他每次只能走到N点,而只要乙每次把P点让给甲,甲必败;

这里好好理解下;

如果上面的理解的。请解决下面的题目:HDU 1846   2147(注意题目限制内存)(先2道练练手,做不出的话提示:找规律)

代码:

#include <iostream>
#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <algorithm>
#include <queue>using namespace std;#define N 1100int main()
{int t;scanf("%d", &t);while(t--){int n, m;scanf("%d%d", &n, &m);if(n%(m+1)==0) printf("second\n");else           printf("first\n");}return 0;
}

转载于:https://www.cnblogs.com/YY56/p/4777249.html

(巴什博弈 sg函数入门1) Brave Game -- hdu -- 1846相关推荐

  1. HDU 1846-Brave Game(巴什博弈-SG函数)

    Brave Game Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total ...

  2. 【博弈论】博弈论入门笔记(四类基础博弈+SG函数)

    『博弈论定义』 博弈论又被称为对策论(Game Theory):是二人或多人在平等的对局中各自利用对方的策略变换自己的对抗策略,达到取胜目标的理论.博弈论是研究互动决策的理论.博弈可以分析自己与对手的 ...

  3. 数学基础(四)博弈论(巴什博弈~威佐夫博弈(黄金分割率)~尼姆博奕~斐波那契博弈~SG函数模板)

    一.巴什博弈 1.问题模型 只有一堆n个物品,两个人轮流从这堆物品中取物,规定每次至少取一个,最多取m个,最后取光者得胜. 2.解决思路: 当n=m+1时,由于一次最多只能取m个,所以无论先取者拿走多 ...

  4. hdu2897邂逅明下——博弈sg函数的应用

    邂逅明下 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submi ...

  5. 点分治问题 ----------- P3727 曼哈顿计划E[点分治+博弈SG函数打表找规律]

    题目链接 解题思路: 1.首先对于每个操作我们实际上是一个博弈问题 对于k=1的操作就是很基础的NIM游戏就是找到一条链的异或和为0 对于k=2的操作通过达打表找规律: 如果s是奇数那么偶数的SG函数 ...

  6. NIM博弈+SG函数求解

    ICG 给定一个有向无环图和一个起始顶点上的一枚棋子,两名选手交替的将这枚棋子沿有向边进行移动,无法移动者判负. 这个游戏可以认为是所有 Impartial Combinatorial Games 的 ...

  7. (转)博弈 SG函数

    此文为以下博客做的摘要: https://blog.csdn.net/strangedbly/article/details/51137432 ---------------------------- ...

  8. CodeForces - 850C Arpa and a game with Mojtaba(博弈+sg函数)

    题目链接:点击查看 题目大意:给出n个数,两个人轮流按照规则操作,不能操作的人即为失败,规则很简单,每次找一个质数p的k次幂,记做x=,将数组中所有包含x倍数的数都除以x,必须保证至少有一个数可以除以 ...

  9. 博弈-sg函数的原理和优化(hdu-1536)

    sg函数:sg函数是博弈中的确定一个position性质的一个函数,全称是sprague-grundy. 性质1:对于所有的p-position,都有sg = 0:对于所有的n-position都有s ...

最新文章

  1. 华为路由器qos car+nat+dhcp+vlan配置心得
  2. 修改js文件需要重启服务器,关于Node.js中频繁修改代码重启服务器的问题
  3. Python爬虫利器五Selenium用法
  4. REVERSE-PRACTICE-BUUCTF-27
  5. 四川传媒学院计算机应用技术专业,2017年四川传媒学院开设哪些专业(高职/专科)...
  6. “白领复工10大热销商品”榜单:口罩及相关商品位居第一
  7. android 自定义域名,Android 懒加载优化
  8. 企业选型数据库系统的五点建议
  9. abaqus算出来的转角单位是什么_ABAQUS中的单位制是如何规定的;
  10. python和java反射_python的反射和自省
  11. 关于网站版权声明(Copyright)的格式和写法
  12. 程序员工资真的高吗?
  13. 为什么用Win32forth编程的程序员不多
  14. BIOS/UEFI基础——Protocol介绍
  15. docker-redis
  16. 出中的意思是什么_回归分析中的“回归”是什么意思?
  17. backface-visibility 翻转特效
  18. 小白学习Linux命令
  19. 计算机常发故障英语,电脑打字一直是英文怎么办
  20. 合工大离散数学实验 数据输出

热门文章

  1. 【Protocol Buffer】Protocol Buffer入门教程(七):导入定义
  2. 【Linux】一步一步学Linux——arpd命令(184)
  3. Android快速开发系列 10个常用工具类
  4. python coding_Python终极coding
  5. C++学习笔记-----函数调用时的决议:名字查找,重载决议,可访问性检测
  6. 只出现一次的数字—leetcode136
  7. HDU Problem - 1455 Sticks
  8. 按钮 小程序 弹出菜单_公众号怎么关联小程序
  9. 【Linux】Makefile文件
  10. php裁剪图片白边,php缩略图填充白边的示例代码