AGC010 记录

赛次总结

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

A.Addition

题意

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

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

【AC】

B.Boxes

题意

\(n\)个箱子围成一圈,第\(i\)个箱子有\(A_i\)个石头。

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

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

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

题解

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

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

对于每个位置,解出 \(-(n-1)\) 的个数。

\[-x(n-1)+k-x=dif \]

\[x=\frac{k-dif}{n} \]

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

【AC】 【Greedy(not AC)】

C.Clean

题意

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

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

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

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

题解

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

\(sum\)\(u\) 节点的子节点的通往节点 \(u\) 的路径和 \(\sum y_v\),就是子节点中还未匹配的路径。

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

\[2x_u+y_u=sum \]

\[x_u+y_u=a[u] \]

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

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

【AC】

D.Decrementing

题意

\(A\)\(B\) 可以轮流对一个最大公约数为 \(1\) 的数组进行操作:

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

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

题解

考虑问题的简化版。

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

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

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

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

【AC】

E.Rearranging

题意

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

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

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

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

题解

posted @ 2022-09-01 20:41  Ayersz  阅读(53)  评论(0)    收藏  举报