2022年江西省大学生程序设计竞赛
比赛链接
2022年江西省大学生程序设计竞赛(正式赛)
C.Graphic Game
给一个 个点, 条边,没有重边和自环的无向图,每次可以选择两个度数相等的点删除,求删完所有点的方案
解题思路
鸽笼原理
度数的可能取值有 ,而点数 个,即一个无向图最少存在两个点的度数相等,删除两个点后仍然是一个无向图,即该问题一定有解,先存下每个度数对应的节点,考虑从最大的度数开始删除两个数,用 维护即可,即现在要证明不存在这样一种情况:删除当前度数为 的两个数后,所有度数 的节点个数都不超过 ,但是可能存在度数 的节点个数超过 ,可以发现这样的情况很难构造出来,因为对于一个度数 的节点来说,说明会有 条边由该节点连向其他节点,假设如果其他点的度数都 ,而有 个这样的点,说明至少存在两个度数相等的点,假设不成立,故与该节点连的点中至少存在一个点的度数 ,即我们的那种要证明的不存在的情况说明:度数大的点至少也会跟度数大的点连边,且所有其他度数小的节点都不存在相等度数的节点,这样的情况更加难以构造
- 时间复杂度:
代码
G.A Game of Taking Numbers
对于 个数 , 先手, 可以选择任何数,如果 选择了 ,则 选择的 需要满足: 或 ,最后无法操作者败
解题思路
博弈论
如果 为奇数的话 必败,否则将所有对 取模的数分成 堆,如果这 堆都为偶数的话 必败,因为无论 从这 堆中哪一堆取数, 都可以从相同堆中取数,最后一定是 无法操作,否则剩下 的情况,同理如果两个奇数堆中存在这样的一对数 使得 ,则最后 选到其中一个数时 都可以选择另外一个数,使得 面临 的必败态,注意还有一种情况需要考虑,如果 中存在 这样的一对数 ,则此时奇偶发生变化,故如果 中至少存在两个不相等的 ,在两个 中都存在 这样的一对数 ,则无论 选这 个数中的任意一个, 都可以选与此对应的数使得状态仍然是 的情况,但是此时 中还存在这样的一对数使得 最后面临 的必败态
- 时间复杂度:
代码
__EOF__

本文链接:https://www.cnblogs.com/zyyun/p/16819062.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
2021-10-23 组合数
2021-10-23 EOJ Monthly 2021.10