题解:AT_abc398_g [ABC398G] Not Only Tree Game

news/2025/3/25 23:41:18/文章来源:https://www.cnblogs.com/xueruhao/p/18792597

赛时没写出来,看到此题才 \(600\) 分,对自己的实力产生了怀疑,没想到是个黑题。

官方题解已经写得比较明朗,在这里再详细解释一下。


题目给出初始图不含奇闭路,因此每个连通块必定是二分图。二分图的性质使得我们在添加边时只能在两个不同的“部”之间添加,不能在同一部内添加(否则会产生奇闭路)。

对于一个连通块,设其两个部中顶点数分别为 \(a\)\(b\),已存在的边数为 \(e\)。该连通块最多能形成的边数为 \(a \times b\),因此在不破坏二分性的前提下,还能添加的边数为 \(a \times b - e\)

对整个图,我们令所有连通块中可添加的边数总和为 \(x\)

此外,我们对连通块按两个部的顶点数的奇偶性进行分类:

  • \(ee\):连通块中两侧顶点数均为偶数;
  • \(oo\):两侧顶点数均为奇数;
  • \(eo\):一侧为偶数,另一侧为奇数(注意非孤立的连通块中如果出现这种情况记为 \(eo\));
  • \(iso\):孤立点(单个顶点构成的连通块)的个数。

游戏的终止状态是无法再添加任何边,即所有可以添加的边均已经存在。由于游戏中每次操作都会增加一条边,最终图的边数的奇偶性就决定了谁先走必胜。考虑两种情况:

1. 当 \(n\) 为奇数时

此时,无论如何将各个连通块合并,最后形成的二分图必然一侧顶点数为奇数,另一侧为偶数。所以最终图中,能够形成的边数必定为偶数。

经过分析证明,可以将最终剩余边数的情况归结为当前状态下 \(oo\) 类连通块贡献的边数(因为在 \(oo\) 类连通块中,两侧顶点数均为奇数,会对整体边数的奇偶性产生影响)和还可以添加的边数 \(x\) 的奇偶性。

综上,先手必胜当且仅当 \(\mathrm{oo} + x\) 为奇数;否则后手必胜。

2. 当 \(n\) 为偶数时

这时情况会更复杂一些,主要因为最后合并后的各个连通块中两个部的顶点数可能均为偶或者均为奇,这直接影响最终能形成的边数的奇偶性。直接分讨:

  • \(eo = 0\)

    此时所有非孤立连通块都是 \(ee\)\(oo\) 类型,同时注意孤立点的个数 \(iso\) 必然为偶。分析表明,局面的胜负取决于孤立点与剩余可加边数的组合,也就是判断 \(\mathrm{iso}/2 + x\) 的奇偶性。

    综上,先手必胜当且仅当 \(\mathrm{iso}/2 + x\) 为奇数;否则后手必胜。

  • \(1 \le \mathrm{eo} \le 2\)

    存在 \(eo\) 类连通块时,先手可以利用一步操作将 \(eo\) 类连通块转换为有利局面(例如连接 \(eo\) 类与孤立点或将两个 \(eo\) 类连通块合并),使得最终局面可以转化为上一种情况。

    综上,先手总能找到必胜策略,因此先手获胜。

  • \(\mathrm{eo} \ge 3\)
    在每一次操作中,\(eo\) 类连通块的数目最多改变 \(2\) 个。经过多次操作后,局面可以归约到最终的状态,其胜负又可以归结为 \(\mathrm{oo} + x\) 的奇偶性。

    综上,先手必胜当且仅当 \(\mathrm{oo} + x\) 为奇数;否则后手获胜。


对于实现,我们只需在遍历图时利用广搜统计出每个连通块中左右两侧的顶点数、已存在的边数,从而计算出 \(x\)、以及各类连通块的数量 \(ee\)\(oo\)\(eo\) 与孤立点数 \(iso\)。根据 \(n\) 的奇偶性及上述分类情况判断先手是否能必胜,从而输出结果。

时间复杂度 \(O(n+m)\),可以被接受。

link

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

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

相关文章

石油化工厂区防爆入侵报警系统

石油化工厂区防爆入侵报警系统采用AI智能防爆预警摄像头嵌入AI人体识别深度算法,对人体目标特征的检测分析识别预警。系统设备采用AI算法,通过大量真实的场景样本训练后,能够在各种应用场景下及时准确地对场景中发生的人体入侵行为发出告警信息。通过对实时视频图像进行智能…

矿山皮带运输机安全监测预警系统

智慧矿山皮带运输机安全监测预警系统是基于AI视频监测分析识别的智能皮带管理系统,该系统通过将人工智能识别算法提高实时分析的效率,达到现场快速识别、分析、预警的目的,为矿山皮带运输系统提供可视化的安全生产保障,该系统已经实现了皮带运输机大媒块、传输带异物、传输…

OP253自动安装凸轮弹簧常见问题

1.夹爪抓取弹簧后不停扔料 两台弹簧振动盘里面的弹簧是镜像件,如果出现混料被取走,会导致卷簧时卡死。夹爪夹住弹簧并提起时,有两个接近开关会检测弹簧是否正确,如果不正确,会将弹簧扔进废料桶。上图两个接近开关是埋入式,只有中心位置检测。应该左边不亮,右边亮,如果任…

web作业

制作一个学生管理系统包括按钮和输入框学生成绩管理系统body { font-family: Arial, sans-serif; margin: 20px } \3c pre>\3c code> h1 { text-align: center } .add-student, .search, .filters { margin-bottom: 20px } table { width: 100%; border-collapse: col…

linux主机新增硬盘与挂载

近期对工作站主机新增了硬盘,网上搜罗了一些教程,整合了一下,感谢相关博主的知识分享,本篇只是整合参考:https://zhuanlan.zhihu.com/p/117651379 https://cn.linux-console.net/?p=10440新增硬盘处理 新增硬盘后,在linux系统下输入 fdisk -l 命令查看当前磁盘信息可以看…

如何优化SQL查询以提高数据库性能?

你正在自助餐厅,所有的食物看起来都很美味。但你不是拿一个盘子,只取你需要的,而是开始从各个角落堆满食物,弄得一团糟,速度也慢了下来。结果是什么?你拿的东西很多并且效率低下。 这就像没有优化的SQL查询!它们加载了不必要的数据,拖慢了整个系统的速度,并在数据库中…

HTB Season7 Dog

一、信息收集 拿到ip,先测试一下连通性连通性正常,使用nmap扫描一下ip,输入nmap -sV -sC -A 10.10.11.58 -Pn 扫描发现http页面,并且发现了网页使用了BackDropCMS在hosts内添加添加页面,访问网页发现一个登录框,尝试一下sql注入无果,只能另寻出路此时dirsearch扫描发现了…

20242802 2023-2024-2《网络攻防实践》第四周作业

20242802 2023-2024-2 《网络攻防实践》第四周作业 1.实验内容与知识点整理TCP/IP参考模型 在TCP/IP参考模型中,去掉了OSI参考模型中的会话层和表示层(这两层的功能被合并到应用层实现)。同时将OSI参考模型中的数据链路层和物理层合并为主机到网络层,所以在TCP/IP参考模型中…

浅谈--Cache Design Pattern

🤔听说你用过Redis、Caffeine,那我问你你了解Cache Design Pattern吗?Look at my eyes。 今天就来聊聊Cache Design Pattern。Cache Design Pattern是缓存设计模式,是用于优化系统性能、减少资源消耗和提升响应速度的软件架构策略。主要有六大核心缓存模式。 Cache-Aside …

七、神经网络-非线性激活

小土堆视频:https://www.bilibili.com/video/BV1hE411t7RN?spm_id_from=333.788.videopod.episodes&vd_source=6cb513d59bf1f73f86d4225e9803d47b&p=19非线性变换的主要目的:引入非线性能力,使模型能够学习复杂的映射关系。如果没有非线性激活,神经网络本质上相当…

日报2025325

今日继续学习springboot,已实现springboot+vue的前后端跨域连接关键是配置CorsConfig以及Requestjs

15. SD卡

一、SD卡简介SD 卡的规范由 SD 卡协会明确,可以访问 https://www.sdcard.org 查阅更多标准。SD 卡主要有 SD、Mini SD 和 microSD(原名 TF 卡,2004 年正式更名为 Micro SD Card)三种类型,Mini SD 已经被 microSD 取代。上述表格的 “脚位数”,对应于实卡上的 “金手指” …