洛谷 P2972:Rocks and Trees G ← 树上Nim博弈

发布时间:2026/8/7 8:12:38

洛谷 P2972:Rocks and Trees G ← 树上Nim博弈
【题目来源】https://www.luogu.com.cn/problem/P2972【题目描述】两个人在一棵有根树上玩 Nim 阶梯游戏。给出一棵有 N 个结点的有根树节点 1 为根每个结点有两个属性 Pi 和 RiPi 表示结点 i 的父亲结点Ri 表示结点 i 的石头数结点 1 没有石头。游戏在两个玩家之间轮流进行Ted 先手。在每一轮这轮的玩家可以选择一个非根结点并且把最多 L 个石头从这个结点向树根靠近一个单位也就是说把这些石头移动到它的父结点处。并且这个玩家至少需要移动一个石子。当某个玩家没有办法移动石子的时候也就是所有的石子都移动到结点 1)游戏结束这个玩家失败。Ted 将会对布局进行 T 次修改。请帮助他确定在每步修改之后以这个布局开局在双方都用最优策略的前提下他是否能赢得这个游戏。Ted 的每次修改由两个数字 x 和 y 描述表示 Ted 将会把结点 x 的石头数修改为 y注意这是一个“设定”操作既不是“减少”也不是“增加”。并且询问修改后谁会获胜。这些修改会累积保持也就是若往后的操作结点 x 的石头数没有修改则结点 x 的石头数会保持在 y个。【输入格式】第 1 行三个空格分隔的整数 N、T 和 L。第 2~N 行每行包含两个空格分隔的整数 Pi 1≤Pii和 Ri1≤Ri≤1000。接下来 T 行每行两个整数 Aj(1Aj≤N) 及 Bj(1≤Bj≤1000)表示 Ted 的每次操作。【输出格式】输出 T 行。如果在第 i 次修改后Ted 可以获胜那么第 i 行输出 Yes否则输出 No。【输入样例】3 2 101 51 32 33 1【输出样例】NoYes【数据范围】2≤N≤10^41≤T≤10^41≤L≤10^3【算法分析】● “洛谷 P2972Rocks and Trees G”整体是树上台阶 Nim即将台阶 Nim 的线性台阶扩展到树形结构深度奇偶替代台阶奇偶每次操作将石子从非根节点移至父节点偶数深度节点可作为“安全缓冲区”被对手模仿抵消因此只有奇数深度节点参与胜负判定。每个奇数深度节点上的石子数记为 cnt受取子上限 L 限制每次只能取 1 到 L 颗这使其单堆退化为巴什博奕SG 值为cnt % (L1)。最终将各奇数深度节点的 SG 值异或若异或和不为零则先手必胜否则先手必败。● SG 值Sprague–Grundy 值 是组合博弈论里用来给公平组合游戏ICG中每一个局面打分的整数核心作用是把五花八门的游戏统一成“和 Nim 一样”的玩法。1每个游戏状态对应一个 SG 值计算方式为考察该状态所有一步可达的后继状态的 SG 值并取该集合的mex 值即不在集合中的最小非负整数作为当前状态的 SG 值显然SG 值一定是非负整数。例如若当前状态所有一步可达的后继状态的 SG 值集合为 {0, 1, 3}则 mex 2若当前状态所有一步可达的后继状态的 SG 值集合为 {0, 1, 2}则 mex 3若没有后继状态即必败态空集合的 mex 0。2SG 值的判定规则为SG 0 表示必败态SG ≠ 0 表示必胜态。多个独立子游戏的总 SG 值为各子游戏 SG 值的异或和由此将任意公平组合游戏纳入 Nim 博弈的统一框架。3不同博弈的 SG 值差异本质上来源于“从当前局面能走到哪些后继局面”的不同规则决定了后继集后继集决定了 mexmex 进而决定了 SG 值。例如在标准 Nim 中单堆石子数为 x时每次可取任意正整数颗1 到 x其后继集包含 0, 1, ..., x-1因此 SG(x) x而在巴什博奕中单堆石子数为 x、每次最多取 L颗时每次只能取 1 到 L颗后继集被限制在 x-L 到 x-1 之间从而 SG(x) x % (L1)。可见取子范围的宽窄直接改变了后继集的构成进而改变了 SG 函数的形态。●巴什博弈Bash Game是一个涉及两名玩家的双人博弈属于公平组合游戏ICG, Impartial Combinatorial Game的典型例子。博弈中有一堆总数为 n 的物品两名玩家轮流从中拿取物品每次至少拿 1 件至多拿 m 件不能不拿最终将物品拿完者获胜。分析如下1n≤m 时由于一次最少拿一个最多拿 m 个甲可以一次拿完先手赢。2nm1 时无论甲拿走多少个 1~m 个剩下的都多于 1 个且少于或等于 m 个乙都能一次拿走剩余的石子后手取胜。上面两种情况可以扩展为以下两种情况。1如果n%(m1)0即 n 是 m1 的整数倍那么不管甲拿多少如 k 个乙都拿 m1-k 个使剩下的永远是 m1 的整数倍直到最后的 m1 个所以后拿的乙一定赢。2如果n%(m1)!0即 n 不是 m1 的整数倍还有余数 r那么甲拿走 r 个剩下的是 m1 的倍数这样就转移到了情况1相当于甲乙互换结果是甲赢。在这个拿石子的游戏中对于后拿的乙来说是很不利的只有在 n%(m1)0 的情况下乙才能赢其他所有情况都是甲赢。●巴什博奕Bash Game是组合博弈中的一类基础游戏特指单堆石子、每次可取 1 到 L 颗、取走最后一颗者胜的独立玩法。【算法代码】#include bits/stdc.h using namespace std; const int N1e45; int fa[N],cnt[N],dep[N]; vectorint g[N]; int n,T,L; int xor_sum; void dfs(int u) { for(int v:g[u]) { dep[v]dep[u]1; dfs(v); if(dep[v]1) xor_sum^(cnt[v]%(L1)); } } int main() { cinnTL; for(int i2; in; i) { cinfa[i]cnt[i]; g[fa[i]].push_back(i); } dfs(1); while(T--) { int pos,val; cinposval; if(dep[pos]1) { xor_sum^(cnt[pos]%(L1)); xor_sum^(val%(L1)); } cnt[pos]val; cout(xor_sum?Yes\n:No\n); } return 0; } /* in: 3 2 10 1 5 1 3 2 3 3 1 out: No Yes */【参考文献】https://blog.csdn.net/hnjzsyjyj/article/details/158802621https://blog.csdn.net/hnjzsyjyj/article/details/158893015

相关新闻

基于知识图谱与AI的智能课程生产:从需求分析到自动化生成全链路实践

基于知识图谱与AI的智能课程生产:从需求分析到自动化生成全链路实践

2026/8/7 8:12:38

大家好,我是专注于技术实战与经验分享的博主。在数字化转型浪潮中,如何将复杂的产业知识体系化、标准化,并高效地转化为可传播、可学习的数字课程,是许多企业和教育机构面临的核心挑战。这不仅是一个内容生产问题,更是…

51单片机原理图完全解读:从零看懂最小系统与外围电路设计

51单片机原理图完全解读:从零看懂最小系统与外围电路设计

2026/8/7 8:12:37

很多同学在刚开始学习51单片机时,面对开发板附带的原理图,常常感到一头雾水。密密麻麻的线条、各种奇怪的符号、英文缩写,让人望而却步,不知道从何看起。这直接导致在后续的编程、调试、甚至硬件连接时,只能机械地照着…

SPI串联电阻布局:信号完整性关键细节与PCB设计实践

SPI串联电阻布局:信号完整性关键细节与PCB设计实践

2026/8/7 8:12:37

1. 项目概述:一个被忽视的布局细节 在高速数字电路的设计中,SPI(Serial Peripheral Interface)总线因其简单、全双工、高速的特性,被广泛应用于MCU与Flash、传感器、显示屏等外设的通信。很多工程师,尤其是…

AI编程助手ClaudeCode:从安装配置到高效工作流全解析

AI编程助手ClaudeCode:从安装配置到高效工作流全解析

2026/8/7 9:12:40

1. 项目概述:ClaudeCode是什么,以及为什么你需要它 如果你是一名开发者,最近肯定在各种技术社区和社群里频繁听到“Claudecode”这个词。它不是什么新的编程语言,也不是某个神秘的框架,而是一个正在迅速崛起的AI编程助…

SQL索引优化实战:提升查询性能10倍的黄金法则

SQL索引优化实战:提升查询性能10倍的黄金法则

2026/8/7 9:12:40

1. 索引策略优化实战:让SQL查询速度飙升10倍的终极指南作为一名数据库工程师,我经历过无数次SQL查询性能问题的折磨。记得有一次,一个简单的报表查询竟然需要30分钟才能返回结果,业务部门直接冲到技术部拍桌子。经过系统排查&…

BLE蓝牙安全机制全解析:从配对绑定到实战开发避坑指南

BLE蓝牙安全机制全解析:从配对绑定到实战开发避坑指南

2026/8/7 9:12:40

1. 项目概述:BLE安全,远不止“配对”那么简单 提到BLE蓝牙的安全机制,很多开发者甚至硬件爱好者的第一反应可能就是“配对码”,比如经典的“0000”或者“1234”。但如果你真这么想,那可能已经踩进了第一个坑。我接触过…

Python pickle模块深度解析:从序列化原理到安全实践

Python pickle模块深度解析:从序列化原理到安全实践

2026/8/7 9:12:40

1. 项目概述:为什么我们需要PKL文件? 在Python的数据处理、机器学习模型部署乃至日常的脚本开发中,我们经常面临一个核心问题:如何高效、可靠地保存和加载程序运行中的中间状态或最终结果?你可能会想到用文本文件&…

C++ Boost.Beast 自定义 Body:零拷贝与流式处理

C++ Boost.Beast 自定义 Body:零拷贝与流式处理

2026/8/7 9:12:40

本文深入 Boost.Beast 的 Body 体系,讲解 BodyReader/BodyWriter 概念要求,实现一个自定义 Body,并详解 http::buffer_body 的零拷贝流式用法。所有 API 均对照 Beast 官方文档与头文件源码核实。 这是 Boost.Beat 系列的最难一篇,涉及 Beast 的核心扩展机制。 一、为什么需…

如何用AlwaysOnTop彻底解决Windows窗口管理的三大痛点?

如何用AlwaysOnTop彻底解决Windows窗口管理的三大痛点?

2026/8/7 9:02:40

如何用AlwaysOnTop彻底解决Windows窗口管理的三大痛点? 【免费下载链接】AlwaysOnTop Make a Windows application always run on top 项目地址: https://gitcode.com/gh_mirrors/al/AlwaysOnTop 你是否经常在多个窗口间来回切换,为了查看参考文档…

ncmdumpGUI:一键解锁网易云音乐ncm文件的终极解决方案

ncmdumpGUI:一键解锁网易云音乐ncm文件的终极解决方案

2026/8/6 19:19:00

ncmdumpGUI:一键解锁网易云音乐ncm文件的终极解决方案 【免费下载链接】ncmdumpGUI C#版本网易云音乐ncm文件格式转换,Windows图形界面版本 项目地址: https://gitcode.com/gh_mirrors/nc/ncmdumpGUI 你是否曾经从网易云音乐下载了心爱的歌曲&am…

分布式配置中心选型实战:Nacos与Consul在创业场景下的对比

分布式配置中心选型实战:Nacos与Consul在创业场景下的对比

2026/8/5 6:02:27

分布式配置中心选型实战:Nacos与Consul在创业场景下的对比工程导读:本文深入讨论 分布式配置中心选型实战:Nacos与Consul在创业场景下的对比 在生产工程实践中的核心落地方案。基于 分布式架构与微服务设计 视角,剖析实际痛点、架…

MoneyPrinterPlus实战指南:AI视频批量生成与自动化发布完整解决方案

MoneyPrinterPlus实战指南:AI视频批量生成与自动化发布完整解决方案

2026/8/5 8:19:55

MoneyPrinterPlus实战指南:AI视频批量生成与自动化发布完整解决方案 【免费下载链接】MoneyPrinterPlus AI一键批量生成各类短视频,自动批量混剪短视频,自动把视频发布到抖音,快手,小红书,视频号上,赚钱从来没有这么容易过! 支持本地语音模型chatTTS,fasterwhisper,…

CAD图库管理:从文件归档到设计资产管理的效率革命

CAD图库管理:从文件归档到设计资产管理的效率革命

2026/8/7 0:02:15

你肯定遇到过这种情况:打开一个老项目,想找某个特定的图块——比如一个标准的门、一个特定的设备符号,或者一个公司logo。你记得它就在某个DWG文件里,或者曾经从某个同事那里拷来过。于是,你开始在一堆命名混乱的文件夹…

5分钟掌握Wand-Enhancer:2026年终极WeMod专业版免费解锁指南

5分钟掌握Wand-Enhancer:2026年终极WeMod专业版免费解锁指南

2026/8/7 0:02:15

5分钟掌握Wand-Enhancer:2026年终极WeMod专业版免费解锁指南 【免费下载链接】Wand-Enhancer Advanced UX and interoperability extension for Wand (WeMod) app 项目地址: https://gitcode.com/GitHub_Trending/we/Wand-Enhancer Wand-Enhancer是一款功能强…

“Quality Control(质量控制)”在软件工程中通常指通过一系列活动确保软件产品符合预定的质量标准和用户需求

“Quality Control(质量控制)”在软件工程中通常指通过一系列活动确保软件产品符合预定的质量标准和用户需求

2026/8/7 0:02:15

“Quality Control(质量控制)”在软件工程中通常指通过一系列活动确保软件产品符合预定的质量标准和用户需求。而“软件测试”是质量控制的关键手段之一,属于QC范畴下的具体实践,其目标是发现缺陷、验证功能正确性、评估软件质量属…

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

2026/8/6 5:43:30

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…

导师推荐!2026最新AI论文工具测评与实用推荐

导师推荐!2026最新AI论文工具测评与实用推荐

2026/8/7 8:02:42

2026年真正好用的AI论文工具,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

告别游戏崩溃:XCOM 2模组管理器的智能革命

告别游戏崩溃:XCOM 2模组管理器的智能革命

2026/8/4 15:11:03

告别游戏崩溃:XCOM 2模组管理器的智能革命 【免费下载链接】xcom2-launcher The Alternative Mod Launcher (AML) is a replacement for the default game launchers from XCOM 2 and XCOM Chimera Squad. 项目地址: https://gitcode.com/gh_mirrors/xc/xcom2-lau…