AGC010 记录

赛次总结

整场是偏向博弈和构造的思维场,总体思维都较为巧妙。

A.Addition

题意

给定一个n个整数的数组A,每次可以删去一对奇偶性相同的Ai,Aj,再添加一项Ai+Aj

判断是否能够通过若干次操作后使得数组只剩下一项。

【AC】

B.Boxes

题意

n个箱子围成一圈,第i个箱子有Ai个石头。

每次可以选择箱子,箱子的编号为 i,然后对于每个 j[1,N],将第 (i+j) 个箱子移除 j 个石头。

其中编号为 n+k 的箱子,视为编号为 k 的箱子。

如果箱子中石头的个数不足移除的个数,那么就不能进行这个操作。

题解

题目要求判断这个数组是否能是若干个循环的 [1,n] 的数组相加而成的。

考虑对数组差分,会发现问题被转化为:差分数组是否是若干个循环 1,1,(n1) 的数组的和的形式。

对于每个位置,解出 (n1) 的个数。

x(n1)+kx=dif

x=kdifn

需要保证的是每一次解出来的 x 次数不能为负数,并且 x 的总和必须要是用总数计算出来的次数。

【AC】 【Greedy(not AC)】

C.Clean

题意

给定一个n个节点的树,一开始第i号节点上有Ai个石头。

每次可以选择一对树叶,然后移除这两个节点路径所有节点上一个石头。

如果有路径上有节点没有石头,那么就不能进行这个操作。

判断是否可以通过若干次操作后,移除所有节点的石头。

题解

对于每一个节点 u,路径是由两部分组成:经过节点 u 通往子树的路径 xu,经过节点 u 通往父节点的路径数 yu

sumu 节点的子节点的通往节点 u 的路径和 yv,就是子节点中还未匹配的路径。

因为这些路径如何匹配都需要经过节点 u,所以可以列出以下方程。

2xu+yu=sum

xu+yu=a[u]

那么对于每一个节点都是需要满足这个条件,并且有以下若干种情况需要特判:

  • 根节点不能有上传的路径,即 yroot=0
  • 每一个子节点上传的路径不能超过 au
  • 如果只存在两个解,那么无法找到适合的根节点,直接判断 a[1]=a[2]

【AC】

D.Decrementing

题意

AB 可以轮流对一个最大公约数为 1 的数组进行操作:

每次可以选择一个不小于 2 的数,然后使其1,然后再让所有的数除去他们的最大公因子。

如果有一个人无法进行操作,那么就输掉比赛,每个人都绝顶聪明,问哪一个人可以赢得比赛。

题解

考虑问题的简化版。

如果没有除去 gcd 的操作,那么当前的状态只和所有数到 1 的操作次数的奇偶性有关,并且不会存在干扰状态的操作。

首先因为每一次操作完后的数组的最大公因子都为 1,所以可以判定是由至少一个奇数和若干个偶数组成的。

对于原题,原先的必胜态,是至少一个奇数和奇数个偶数组成情况,那么只需要对偶数进行操作,然后使对手处于至少两个奇数和偶数个偶数的必败态,并且没有方法改变当前的必败态。

必败态,是至少一个奇数和偶数个偶数的组成情况,如果当前只有一个奇数,那么就可以对奇数进行操作,这样可能可以改变当前的状态,但是如果不止一个奇数,那么对手一定在当前操作后继续制造出一个奇数,那么就一直存在于必败态中。

【AC】

E.Rearranging

题意

A 和 小 B 在分别对一个数组进行操作。

A 可以任意将数组打乱,小 B 可以任意将一对相邻互质的数互换位置。

A 希望最后数组能字典序尽量大,小 B 希望最后数组能字典序尽量小。

询问最后数组会变成什么样子。

题解

posted @   Ayersz  阅读(35)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏
点击右上角即可分享
微信分享提示