AGC010 记录
赛次总结
整场是偏向博弈和构造的思维场,总体思维都较为巧妙。
A.Addition
题意
给定一个个整数的数组,每次可以删去一对奇偶性相同的,再添加一项。
判断是否能够通过若干次操作后使得数组只剩下一项。
B.Boxes
题意
有个箱子围成一圈,第个箱子有个石头。
每次可以选择箱子,箱子的编号为 ,然后对于每个 ,将第 个箱子移除 个石头。
其中编号为 的箱子,视为编号为 的箱子。
如果箱子中石头的个数不足移除的个数,那么就不能进行这个操作。
题解
题目要求判断这个数组是否能是若干个循环的 的数组相加而成的。
考虑对数组差分,会发现问题被转化为:差分数组是否是若干个循环 的数组的和的形式。
对于每个位置,解出 的个数。
需要保证的是每一次解出来的 次数不能为负数,并且 的总和必须要是用总数计算出来的次数。
C.Clean
题意
给定一个个节点的树,一开始第号节点上有个石头。
每次可以选择一对树叶,然后移除这两个节点路径所有节点上一个石头。
如果有路径上有节点没有石头,那么就不能进行这个操作。
判断是否可以通过若干次操作后,移除所有节点的石头。
题解
对于每一个节点 ,路径是由两部分组成:经过节点 通往子树的路径 ,经过节点 通往父节点的路径数 。
记 为 节点的子节点的通往节点 的路径和 ,就是子节点中还未匹配的路径。
因为这些路径如何匹配都需要经过节点 ,所以可以列出以下方程。
那么对于每一个节点都是需要满足这个条件,并且有以下若干种情况需要特判:
- 根节点不能有上传的路径,即
- 每一个子节点上传的路径不能超过
- 如果只存在两个解,那么无法找到适合的根节点,直接判断
D.Decrementing
题意
和 可以轮流对一个最大公约数为 的数组进行操作:
每次可以选择一个不小于 的数,然后使其,然后再让所有的数除去他们的最大公因子。
如果有一个人无法进行操作,那么就输掉比赛,每个人都绝顶聪明,问哪一个人可以赢得比赛。
题解
考虑问题的简化版。
如果没有除去 的操作,那么当前的状态只和所有数到 的操作次数的奇偶性有关,并且不会存在干扰状态的操作。
首先因为每一次操作完后的数组的最大公因子都为 ,所以可以判定是由至少一个奇数和若干个偶数组成的。
对于原题,原先的必胜态,是至少一个奇数和奇数个偶数组成情况,那么只需要对偶数进行操作,然后使对手处于至少两个奇数和偶数个偶数的必败态,并且没有方法改变当前的必败态。
必败态,是至少一个奇数和偶数个偶数的组成情况,如果当前只有一个奇数,那么就可以对奇数进行操作,这样可能可以改变当前的状态,但是如果不止一个奇数,那么对手一定在当前操作后继续制造出一个奇数,那么就一直存在于必败态中。
- 参考题解:Atcoder AGC010 题解
E.Rearranging
题意
小 和 小 在分别对一个数组进行操作。
小 可以任意将数组打乱,小 可以任意将一对相邻互质的数互换位置。
小 希望最后数组能字典序尽量大,小 希望最后数组能字典序尽量小。
询问最后数组会变成什么样子。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏