ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

树上博弈

2021-08-16 21:02:16  阅读:200  来源: 互联网

标签:子树 博弈 游戏 竹子 树上 SG 节点


树上博弈

前置知识

基础图论知识,SG定理

问题描述

设\(T\)为一个森林,其中有\(n\)颗有根树,且树根都在地面上。\(Alice、Bob\)每次选择某一棵树的一条边,删除这条边以及这条边所连接的地上部分,最后无法操作的人输掉博弈。

简化问题

引入“竹子”的概念,如果一棵树退化成链,那么我们称其为一根竹子。

若是由竹子形成的森林(竹林),那么显然这个游戏就等价于一个Nim游戏,对于每棵树有\(SG(x)\)为这棵竹子的边数,于是我们所求解的问题就是这样\(n\)颗竹子所形成的组合游戏,根据\(SG\)定理求解即可。

那么我们想是的一棵树能够等价于一颗竹子的形状(已经变成竹子的形状了

Colon Principle(克朗原理)

首先,我们约定一个点的\(SG\)值为以这个点为根张成的子树的\(SG\)值,对于某一个点\(x\),其子节点为\(x_1,x_2,x_3, \dots, x_t\)

那么由\(Colon Principle\),我们有

\[SG(x)= \begin{cases} 0 & t=0 \\ SG(x_1) \oplus SG(x_2) \oplus \dots \oplus SG(x_n) & t>0\end{cases} \]

通俗的解释来说,一棵树等价于一颗长度为其所有子树的“长度”的异或值的竹子。这里子树的“长度”可以通过递归的方法求得。

证明(口胡):

首先,若一颗树只有根节点,那么显然其\(SG\)值为\(0\)。

而若这棵树有多个节点,对于其根节点\(x\),考虑其子节点\(x_1,\dots,x_t\)所构成的子树。

则此游戏相当于有\(t\)颗由根节点\(x\)加上其一颗子树\(x_i\)所构成的组合游戏。那么对于这样的组合游戏我们由SG定理能知道其\(SG\)值为所有游戏的异或值。原因如下:

我们将本来的树,拆成\(t\)颗子树构成的森林,每颗子树的构造方法如上所述。那么我们每次在原树上进行的操作,都和在森林中进行的操作等价。

于是显然证毕?

而且从证明过程中可以看出,克朗原理不止适用于删边游戏于是我们就能很轻松的解决树上博弈的问题了喵

对于博弈的大部分问题,只要SG值相同,就可以互相转化

一些题目?

标签:子树,博弈,游戏,竹子,树上,SG,节点
来源: https://www.cnblogs.com/sora-13/p/15149895.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有