题目描述Jolly\texttt{Jolly}Jolly和Emily\texttt{Emily}Emily在纸上画了一棵有根树结点编号为000到n−1n - 1n−1000为根。每条边带有权值www表示该边有www个相同的单位。初始时所有边均未涂色。游戏规则如下Emily\texttt{Emily}Emily先手双方轮流操作。每轮玩家可以选择一条边该边至少有一个单位尚未涂色并且从根结点出发仅通过空闲边即尚未被完全涂色的边可以到达该边。Emily\texttt{Emily}Emily用红色涂一个单位Jolly\texttt{Jolly}Jolly用绿色涂一个单位。无法找到可涂边的玩家输掉游戏。给定树的结构和边权双方均采取最优策略求获胜者。输入格式第一行一个整数TTTT≤500T \le 500T≤500表示测试用例数。每个测试用例第一行一个整数nnn2≤n≤10002 \le n \le 10002≤n≤1000。接下来n−1n - 1n−1行每行三个整数uuu、vvv、www0≤u,vn0 \le u, v n0≤u,vnu≠vu \ne vuv1≤w≤1091 \le w \le 10^91≤w≤109表示一条无向边及其权值。输入保证构成一棵有效的树。数据量较大建议使用快速I/O\texttt{I/O}I/O。输出格式对于每个测试用例输出Case x: Emily或Case x: Jolly其中xxx为从111开始的测试用例编号。样例输入4 4 0 1 1 1 2 1 0 3 2 5 0 1 1 1 2 2 0 3 3 0 4 7 3 0 1 1 0 2 1 4 0 1 1 1 2 1 1 3 1输出Case 1: Emily Case 2: Emily Case 3: Jolly Case 4: Emily题目分析本题是一个双人完全信息博弈且游戏状态可以用树的结构和每条边的剩余涂色单位数描述。直接模拟状态空间不可行边权可达10910^9109。需要利用博弈论中的Sprague-Grundy\texttt{Sprague-Grundy}Sprague-GrundySG\texttt{SG}SG定理来化简。观察游戏规则玩家只能涂那些从根出发、路径上的边都未被完全涂满的边。这等价于若某条边被完全涂满则其子树中的边位于该边下方的边将永远无法再被涂色因为从根到它们必须经过这条已被封闭的边。因此游戏过程可以看作是在树上从根向下逐步“封锁”边的过程。每条边一旦被完全涂满就切断其下方所有边与根的联系。这种结构非常适合用递归的SG\texttt{SG}SG值来描述。对于一棵子树其博弈状态仅取决于该子树根结点与其父结点之间的那条边即“入口边”的剩余单位数以及该子树内所有子结点的SG\texttt{SG}SG值。由于每条边的权值可能很大但SG\texttt{SG}SG值的计算只涉及奇偶性和111的特殊情况因此可以高效求解。解题思路我们定义g(u)g(u)g(u)为以结点uuu为根的子树包含从uuu到其子结点的所有边的SG\texttt{SG}SG值。考虑结点uuu与其父结点ppp之间的边eee其权值为www。我们关心的游戏是从根000出发只有经过eee才能进入uuu的子树。在eee被完全涂满之前玩家可以选择在eee上涂色也可以选择进入uuu的子结点对应的边进行涂色。一旦eee被涂满uuu子树的所有边都被隔绝游戏结束。设CCC为uuu的所有子结点vvv的SG\texttt{SG}SG值g(v)g(v)g(v)的异或和即C⨁v∈children(u)g(v)C \bigoplus_{v \in \textit{children}(u)} g(v)C⨁v∈children(u)g(v)。那么整个以uuu为根、入口边权为www的子博弈可以看作一个组合游戏其SG\texttt{SG}SG值g(u)g(u)g(u)由www和CCC共同决定。通过归纳分析可得如下结论若w1w 1w1则该边只有一个单位必须等所有子博弈结束后才能涂这最后一个单位相当于在子博弈的SG\text{SG}SG值CCC基础上再增加一步因此g(u)C1g(u) C 1g(u)C1。若www为偶数则该边的涂色操作不会改变子博弈的奇偶性整体SG\texttt{SG}SG值不变即g(u)Cg(u) Cg(u)C。若www为奇数且w1w 1w1则每次在该边上涂色都会翻转子博弈SG\texttt{SG}SG值的最低位最终效果等价于将CCC异或上111即g(u)C⊕1g(u) C \oplus 1g(u)C⊕1。这一定理的严格证明可以通过对www的归纳和SG\texttt{SG}SG函数的定义完成此处不再赘述。因此我们只需从叶子结点向上递归计算每个结点的ggg值。对于根结点000它没有父边整个游戏的SG\texttt{SG}SG值即为所有子结点g(v)g(v)g(v)的异或和即CCC的值。若该异或和非零则先手Emily\texttt{Emily}Emily必胜否则Jolly\texttt{Jolly}Jolly必胜。算法步骤以000为根通过DFS\texttt{DFS}DFS遍历树建立父子关系。对于每个结点uuu递归计算其所有子结点vvv的g(v)g(v)g(v)并求异或和CCC。若uuu不是根则根据父边权值www计算g(u)g(u)g(u)若uuu是根则直接将CCC作为整棵树的SG\texttt{SG}SG值。若整棵树的SG\texttt{SG}SG值为000则后手Jolly\texttt{Jolly}Jolly获胜否则先手Emily\texttt{Emily}Emily获胜。时间复杂度每个结点访问一次DFS\texttt{DFS}DFS复杂度O(n)O(n)O(n)满足n≤1000n \le 1000n≤1000的要求。空间复杂度O(n)O(n)O(n)。代码实现// Game of CS// UVa ID: 12033// Verdict: Accepted// Submission Date: 2026-07-13// UVa Run Time: 0.080s//// 版权所有C2026邱秋。metaphysis # yeah dot net#includebits/stdc.husingnamespacestd;typedeflonglongll;llsgFunc(ll w,ll c){if(w1)returnc1;if(w%20)returnc;returnc^1;}voiddfs(intu,intparent,ll parentWeight,vectorvectorpairint,lladj,vectorllsg,lltotalXor){ll childXor0;for(autoe:adj[u]){intve.first;ll we.second;if(vparent)continue;dfs(v,u,w,adj,sg,totalXor);childXor^sg[v];}if(u0){totalXorchildXor;sg[0]childXor;}else{sg[u]sgFunc(parentWeight,childXor);}}intmain(){intT;scanf(%d,T);for(intcaseNo1;caseNoT;caseNo){intn;scanf(%d,n);vectorvectorpairint,lladj(n);for(inti0;in-1;i){intu,v;ll w;scanf(%d %d %lld,u,v,w);adj[u].push_back({v,w});adj[v].push_back({u,w});}vectorllsg(n,0);ll totalXor0;dfs(0,-1,0,adj,sg,totalXor);printf(Case %d: %s\n,caseNo,totalXor?Emily:Jolly);}return0;}总结本题的关键在于将复杂的博弈过程转化为可递归计算的SG\texttt{SG}SG值并利用奇偶性简化边权的影响。主要技巧识别游戏的有向树结构利用SG\texttt{SG}SG定理分解子游戏。对边权进行分类111、偶数、奇数111并推导出对应的SG\texttt{SG}SG值公式。使用深度优先遍历自底向上计算避免指数级状态。该解法简洁高效时间复杂度仅为O(n)O(n)O(n)适用于n≤1000n \le 1000n≤1000且T≤500T \le 500T≤500的输入规模。掌握此类树上组合游戏的SG\texttt{SG}SG分析法对解决类似问题有重要参考价值。
企业数字化 ERP 产品动态
相关推荐
三步把Touch Bar变成生产力面板:免费开源小部件管理器Pock配置指南 三步把Touch Bar变成生产力面板:免费开源小部件管理器Pock配置指南 【免费下载链接】pock Widgets manager for MacBook Touch Bar 项目地址: https://gitcode.com/gh_mirrors/po/pock
Pock 是一款免费开源的 MacBook Touch Bar 小部件管理器,把 … · 2026/11/7 16:39:40
Czkawka重复文件清理:一键揪出重复文件、空文件夹和相似图片 Czkawka重复文件清理:一键揪出重复文件、空文件夹和相似图片 【免费下载链接】czkawka Multi functional app to find duplicates, empty folders, similar images etc. 项目地址: https://gitcode.com/GitHub_Trending/cz/czkawka
你的电脑硬盘还有多少空间… · 2026/11/7 18:24:02
猫抓:把网页视频下载的“下载不了“变成“勾选即存“,4 步快速指南 猫抓:把网页视频下载的"下载不了"变成"勾选即存",4 步快速指南 【免费下载链接】cat-catch 猫抓 浏览器资源嗅探扩展 / cat-catch Browser Resource Sniffing Extension 项目地址: https://gitcode.com/GitHub_Trending/ca/cat-ca… · 2026/11/7 19:47:31
拆电线需要电工证吗?值不值得考?商丘公路工程从业者的真实经验 拆电线需要电工证吗?值不值得考?商丘公路工程从业者的真实经验 证书过期了不知道怎么复审延期?很多人在特种作业证到期后,手忙脚乱地去打听复审流程,结果不是被各种信息绕晕,就是错过了最佳办理时间。尤其像商丘这样的公路工程从业者,工作中涉及电力线… · 2026/11/8 8:26:03
怎么看电工证复审延期怎么办理 电工证怎么考?考前押题能帮你少走弯路 你是不是正在为找不到工作发愁?是不是已经拿到了电工证,却还在为怎么复审、怎么补办、怎么考前准备而焦虑?别急,今天就从平顶山劳务班组负责人的角度,和你聊聊 怎么看电工证 ,以及怎么用 考前押题… · 2026/11/8 8:26:03
电工证怎么拿下真实经历分享:别再被中介骗了 电工证怎么拿下真实经历分享:别再被中介骗了 不知道去哪报名怕被中介坑?我来告诉你电工证怎么拿下,这是我在许昌市政工程一线工作时的真实经历。当时为了接项目,单位要求考低压电工证,结果被几个“代办”机构忽悠得差点交了高价费,最后还是自己搞定,现… · 2026/11/8 8:26:03
电工作业考试试题库怎么用?真实经历告诉你怎么避免走弯路 电工作业考试试题库怎么用?真实经历告诉你怎么避免走弯路 之前考的证在外省能不能转过来?这几乎是每个在外地打工、刚拿到特种作业操作证的电工都问过的问题。我之前也在外地工作,考了低压电工证,后来想回老家发展,发现证书不能直接用,折腾了一番才搞定… · 2026/11/8 8:26:03
怎么看电工证培训机构怎么选 电工证怎么考?多久拿证?新手必看的避坑指南 你是不是正为找不到工作发愁?是不是因为没有电工证,连面试机会都没有?别急,这篇文章就是为你量身打造的,从 怎么看电工证 到 多久拿证 ,再到如何选择靠谱的培训机构,全都讲得明明白白。… · 2026/11/8 8:26:03
广州番禺区电工证内部消息:电工证怎么考?工资能拿到多少? 广州番禺区电工证内部消息:电工证怎么考?工资能拿到多少? 你是不是也和我一样,不知道去哪报名怕被中介坑?别急,今天就把【广州番禺区电工证】的 内部消息 一股脑告诉你,从报名到拿证、从工资到未来发展,全都讲透彻。… · 2026/11/8 8:25:02
电工证丢失还能补吗?千万别踩坑,丢了证等于失业 电工证丢失还能补吗?千万别踩坑,丢了证等于失业 你正在找工作,但手里的电工证突然丢了,这下怎么办?别急,先别慌, 电工证丢失还能补吗 ?答案是肯定的,但 千万别踩坑 ,补办流程如果不了解,可能会耽误你上岗、甚至影响到你的收入。… · 2026/11/8 0:00:20
电力电缆作业证直播报名入口与办理流程良心建议 电力电缆作业证直播报名入口与办理流程良心建议 你是不是也担心学历不高报不了名?别急,今天就给你讲讲 电力电缆作业证直播 的报名流程和那些你必须知道的干货, 良心建议 在这里,别错过。 电力电缆作业证直播报名需要什么条件?… · 2026/11/8 0:00:20
英德电工证报考费多少钱,怕考不过白交培训费?看完这篇别再踩坑 英德电工证报考费多少钱,怕考不过白交培训费?看完这篇别再踩坑 怕考不过白交培训费?英德电工证报考费多少钱,你真的了解吗?现在市面上培训机构五花八门,价格参差不齐,很多人一不小心就花了冤枉钱,结果还考不过。别急,今天就来给你说清楚英德电工证的… · 2026/11/8 0:00:20
电工证丢失还能补吗?千万别踩坑,丢了证等于失业 电工证丢失还能补吗?千万别踩坑,丢了证等于失业 你正在找工作,但手里的电工证突然丢了,这下怎么办?别急,先别慌, 电工证丢失还能补吗 ?答案是肯定的,但 千万别踩坑 ,补办流程如果不了解,可能会耽误你上岗、甚至影响到你的收入。… · 2026/11/8 0:00:20
电力电缆作业证直播报名入口与办理流程良心建议 电力电缆作业证直播报名入口与办理流程良心建议 你是不是也担心学历不高报不了名?别急,今天就给你讲讲 电力电缆作业证直播 的报名流程和那些你必须知道的干货, 良心建议 在这里,别错过。 电力电缆作业证直播报名需要什么条件?… · 2026/11/8 0:00:20
英德电工证报考费多少钱,怕考不过白交培训费?看完这篇别再踩坑 英德电工证报考费多少钱,怕考不过白交培训费?看完这篇别再踩坑 怕考不过白交培训费?英德电工证报考费多少钱,你真的了解吗?现在市面上培训机构五花八门,价格参差不齐,很多人一不小心就花了冤枉钱,结果还考不过。别急,今天就来给你说清楚英德电工证的… · 2026/11/8 0:00:20
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/7 11:25:08
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/7 12:02:18
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/8 1:18:25