算法总结 -- 博弈论(PN图)

博弈论:组合博弈
* 必败点(P点) :前一个选手(Previous player)将取胜的位置称为必败点。
* 必胜点(N点) :下一个选手(Next player)将取胜的位置称为必胜点
* 必败(必胜)点的属性:
* (1) 所有终结点是必败点(P点);
* (2) 从任何必胜点(N点)操作,至少有一种方法可以进入必败点(P点);
* (3)无论如何操作, 从必败点(P点)都只能进入必胜点(N点).

* 由上面的属性得到该题的算法:
* 步骤1:将所有终结位置标记为必败点(P点);
* 步骤2: 将所有一步操作能进入必败点(P点)的位置标记为必胜点(N点)
* 步骤3:如果从某个点开始的所有一步操作都只能进入必胜点(N点) ,则将该点标记为必败点(P点) ;
* 步骤4: 如果在步骤3未能找到新的必败(P点),则算法终止;否则,返回到步骤2。

关于博弈问题,较为常用的是P/N图分析法
          
  p n p n p n p n
  n  n n n n n n n
  p n p n p n p n
  n  n n n n n n n
  p n p n p n p n
  n  n n n n n n n
  p n p n p n p n

实际上就是按照规则画图;有以下三条规则:
number one :每个图的末状态均为必败点P
number two: 所有能够一步到达必败点的都是必胜点N
number three: 所有能够一步到达必胜点的都是必败点 P
画图的时候,选定对角线定点里面的那个点位末状态,题上的说明,那么一般找的规则就是从最底边上,还有最开始的那一列开始确定P还是N点,这样很方便的看出,当行列都是奇数的时候,那么一定会必败点。

转自https://blog.csdn.net/Adusts/article/details/81385588

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/441624.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux安全模式改文件,嵌入式Linux的安全模式设计 - 嵌入式操作系统 - 电子发烧友网...

本系统的架构如下图:产品所使用的flash总大小为16M。系统包括三大部分,即Bootloader,config, kernel rootfs:另外,/dev/mtdblock/0,在系统中对应整个flash block,即整个16M空间。系统启动时&am…

【POJ - 1661】Help Jimmy(记忆化搜索,dp)

题干: Help Jimmy" 是在下图所示的场景上完成的游戏。 场景中包括多个长度和高度各不相同的平台。地面是最低的平台,高度为零,长度无限。 Jimmy老鼠在时刻0从高于所有平台的某处开始下落,它的下落速度始终为1米/秒。当Jim…

c语言linux消息机制,linux消息机制的过程是什么啊,请赐教

LINUX的安装过程很简单,按照它的提示进行就可以了.重点就是分区那里.通常我们使用双系统,那样我们在LINUX分区的时候不要把WIN分区跟格掉就好,然后要记得分一个SWAP分区,然后根据您的需要进行相应的分区,比如/HOME,/USR,/VAR等等.下面介绍一下具体操作步骤:假定用户…

ACM与Java -- 大整数类的常用函数一览表

BigInteger abs() 此方法返回一个BigInteger,其值是此BigInteger的绝对值。2BigInteger add(BigInteger val) 此方法返回一个BigInteger,其值是(this val).3BigInteger and(BigInteger val) 此方法返回一个BigInteger,其值是 (this & v…

linux虚拟机上安装域名,虚拟机如何安装linux系统

虚拟机如何安装linux系统?安装linux系统首先要在电脑上安装好虚拟机,然后逐步进行linux系统安装。大致介绍下安装的流程。1.首先打开虚拟机软件,点击文件/新建虚拟机,用户可以按照默认选择,然后点击下一步。2.在浏览里&#xff0c…

想打ACM?想刷题?来这些online judge!

原文地址:https://blog.csdn.net/tigerisland45/article/details/52134189

基于arm下的Linux控制,基于ARMuCLinux的网络控制系统设计与实现

引言 随着网络和通信技术的发展,嵌入式系统现已进入高速发展阶段。并在社会各个领域得到了广泛的应用。本文介绍了一种采用ARMuCLinux作为开发平台。实现基于TCP/IP的远程系统监控.从而取代传统单片机来实现数据采集、预处理和通信功能&am…

【qduoj - 1121】小明的贪心题(Dijkstra最短路 + 最短路条数)

题干: 小明的贪心题 描述 小明来到青岛上学已经一年了,他给青岛这座城市画了一张地图。在这个地图上有n个点,小明的起始点为1号点,终点为n号点,并且地图上的所有边都是单向的。小明知道从i号点到j号点的时间花费为w分…

nodejs 监控linux,linuxServerMonitoring

linux服务器监控平台技术:nodejs vue java mongodb springboot linux shelllinux服务器监控项目,前后端分离vuespringbootmongodb:1、启动前台:使用命令:A 先安装nodejs并配置好环境变量B 先控制台cmd命令切换到项目目…

【qduoj - 纳新题】小明的dp(快速幂 + 乘法原理)(简单组合数学)

题干: 描述 小明有n种珠宝,每种无限个,他想从这些珠宝中取出m个,编成手链(长链哦),并按顺序排列起来,为了好看,相邻的珠宝不能相同。小明想知道有多少种排列的方法。 输…

linux查看显卡核心数,linux查看硬件信息,linux查看硬盘信息,linux查看CPU信息,linux查看显卡,硬件型号信息 | 帮助信息-动天数据...

linux查看硬件信息,linux查看硬盘信息,linux查看CPU信息,linux查看显卡,硬件型号信息作者:dthost |时间:2015-09-30 |8,325 次阅读linux服务器大家都知道,他和WIN系统不一样,他不能和WIN电脑一样,用桌面的电脑属性查看…

【qduoj - 纳新题】凑数题(恰好装满类0-1背包 或 母函数)

题干: 描述 小Q手里有n枚硬币,每枚硬币有一定的金额x,他想知道,用这些硬币能组成多少种不同的金额。但是他太笨了,自己数懵了,你来帮帮他好不好? 注意:组成金额时,每枚硬币只能用一…

c语言中short作用,C语言short

C语言short教程C语言short定义详解语法short int varname value;short varname1 value2; //简写形式参数参数描述short int定义 short 类型变量使用的类型。varname变量名。value可选,变量的初始值,该值不可以超过 short 类型的最大值。说明使用 short…

dls的BM算法模板(线性递推问题,解决矩阵快速幂解决不了的问题)

模板&#xff1a;往里面扔数就可以了&#xff08;据说>8个&#xff1f;&#xff09;%%%dls https://www.cnblogs.com/zzqsblog/p/6877339.html #include<bits/stdc.h> using namespace std; #define rep(i,a,n) for (int ia;i<n;i) #define per(i,a,n) for (int …

c语言课题设计字符串处理函数报告,C语言输入输出库函数设计实验报告.doc

C语言输入输出库函数设计实验报告第 PAGE \* MERGEFORMAT I页 共 SECTIONPAGES \* MERGEFORMAT 1页华中科技大学计算机科学与技术学院C语言课程设计报告题目: C输入输出库函数的程序设计专 业&#xff1a; 计算机科学与技术班 级&#xff1a; CS1202学 号&#xff1a; U2012148…

【HDU - 1847】Good Luck in CET-4 Everybody! (巴什博奕,PN图或sg函数)

题干&#xff1a; 大学英语四级考试就要来临了&#xff0c;你是不是在紧张的复习&#xff1f;也许紧张得连短学期的ACM都没工夫练习了&#xff0c;反正我知道的Kiki和Cici都是如此。当然&#xff0c;作为在考场浸润了十几载的当代大学生&#xff0c;Kiki和Cici更懂得考前的放松…

词法分析器c语言带注释,C语言词法分析器内容说明注释完整可运行代码.doc-资源下载在线文库www.lddoc.cn...

C语言词法分析器_内容说明注释完整_可运行代码.doc1. 实验目的及要求 本次实验通过用 C 语言 设计、编制、调试一个词法分析子程序&#xff0c;识别单词&#xff0c;实现一个 C 语言词法分析器&#xff0c;经过此过程可以加深对编译器解析单词流的过程的了解。 运行环境运行环境…

【HDU - 2516 】取石子游戏 (Fibonacci博弈)

题干&#xff1a; 1堆石子有n个,两人轮流取.先取者第1次可以取任意多个&#xff0c;但不能全部取完.以后每次取的石子数不能超过上次取子数的2倍。取完者胜.先取者负输出"Second win".先取者胜输出"First win". Input 输入有多组.每组第1行是2<n<…

打印心形c语言,C语言打印心形

#include int main() {for (float y 1.5f; y > -1.5f; y - 0.1f) {for (float x -1.5f; x < 1.5f; x 0.05f) {float a x * x y * y - 1;putchar(a * a * a - x * x * y * y * y < 0.0f ? ‘*‘ : ‘ ‘);}putchar(‘\n‘);}}**********************************…

【HDU - 1564 】Play a game (博弈问题,找规律,奇偶博弈)

题干&#xff1a; New Year is Coming! ailyanlu is very happy today! and he is playing a chessboard game with 8600. The size of the chessboard is n*n. A stone is placed in a corner square. They play alternatively with 8600 having the first move. Each time…