CF1637G题解

通过打表发现,答案一定是 \(2\) 的次幂。

证明:

操作等价于矩阵转移:

\[\begin{pmatrix} x' \\ y' \end{pmatrix} = \begin{pmatrix} 1&1 \\ -1&1 \end{pmatrix} \begin{pmatrix} x\\ y \end{pmatrix} \]

假设最后全为 \(r\),假设 \(p|r\),并在 \(\bmod p\) 意义重新做一遍转移,最后序列变为全为 \(0\)

我们发现,当矩阵\(\begin{pmatrix} 1&1\\-1&1 \end{pmatrix}\)\(\bmod p\) 意义下可逆时,原操作使可逆的。

但对于最后全是 \(0\) 的矩阵,它不可能乘上一个矩阵后变成不为 \(0\) 的矩阵,因此矩阵 \(\begin{pmatrix} 1&1\\-1&1 \end{pmatrix}\) 不可逆。

我们知道,矩阵不可逆当且仅当其行列式为0,而此矩阵行列式为 \(2\) ,因此 \(p\) 只能为 \(2\)

\(r\) 有除了 \(2\) 以外的质因子,那么 \(p\) 选那个质因子就能让矩阵可逆,因此 \(r\) 只能是 \(2\) 的次幂。

大胆猜测,答案的最小值就是不小于 \(n\) 的最小的 \(2\) 的次幂。

如何构造答案?

因为 \((0,a)\)\((a,a)\) 可以搞出 \((0,2a)\),即翻倍,不难想到先把所有数消成 \(2\) 的次幂。

假设目前序列长度为 \(n\),答案是 \(x\),想到用与 \(x/2\) 对称的数去凑 \(x\)

\(y=\frac{x}{2}\),则可以用 \((y-1,y+1),(y-2,y+2),\cdots,(x-n,n)\) 来凑出 \(x\),并留下操作前的 \(1,2,\cdots,x-n-1\) 和操作留下的 \(2,4,\cdots,2n-x\),前面的是规模减少的子问题,后面提出 \(2\) 后也是规模减少的子问题,于是可以递归求解。

\(solve(n)\) 为将 \([1,n]\) 全部消成 \(2\) 的次幂,于是在通过配对后递归调用 \(solve(x-n-1)\)\(solve(2n-x)\)

这样就只剩下 \(2\) 的次幂了,这是很好操作的。

posted on 2022-11-06 17:02  cool_tyl  阅读(14)  评论(0)    收藏  举报