文章

2025 牛客暑期多校 Round 3 题解

A

容易发现可以把行列关于对角线对称,因此只需考虑行的情况。

对于第 i 行,我们从左往右填入 0 \sim f_i - 1 的数,但此时可能出现 a_{i,j}=f_j 的情况使得影响之前构造好的部分。

考虑到 a_{i,i} 只会影响到第 i 行/列,同时若同时出现两个数 j_1,j_2 满足 a_{i,j_1}=f_{j_1},a_{i,j_2}=f_{j_2},那么可以直接交换这两个数消去这两个数的影响。

那么解法是显然的了:对于 a_{i,j}=f_j 的情况,优先进行两两配对,最后若仍剩下一个没被配对,则与 a_{i,i} 配对即可。

B

显然当且仅当 a=b=0,c \neq 0 时无解。

构造的思路是显然的,我们先想办法令 a=c,b=0,然后再将 b \leftarrow a \oplus b 即可得到 a=b=c

具体做法是,我们不断调整 b 的最高位所在位置,然后当该位上 ac 不同时令 a \leftarrow a \oplus b 即可。

实现有一些细节。

C(待补)

D

若初始能进行任何合法操作,答案为 n;否则答案为初始时 1 的个数。

E

假设目标是将所有数变为 L = \text{lcm}(a_1,a_2,\dots,a_n)

\frac{L}{a_i} 质因数分解,计算 n 个数中每个质因子出现的次数。容易发现若所有质因子出现的次数均为偶数,那么一定可行。

那么若 n 为奇数且某个质因子 p 出现次数为奇数,则可以调整 LpL,这样可以使 p 的出现次数变为偶数。

因此 n 为奇数时一定可行。

n 为偶数,此时无法操作质因子的奇偶性,因此可行的充要条件即为 \frac{L}{a_i} 中所有质因子出现的次数均为偶数。

显然,\frac{L}{a_i} 中所有质因子出现的次数等价于 a_i 中质因子出现的次数,因此质因数分解统计次数即可。

注意常数。

F

首先 n \le a 无解。

其次 n \mod (a + b) \in [1, a] 时答案为 n \mod (a + b),剩余情况为 0

G(待补)

H

需要发现任意时刻可达的点是一个包含根的极大连通块。

维护这个连通块,每次给出一个 (u,l,r) 则意味着连通块向 u 这个位置伸出 r-l+1 步。

使用倍增找到伸出的末端节点,因为每个点的答案只会被更新一次,所以暴力跳父亲更新答案即可。

时间复杂度 \Theta(n \log n)

I(待补)

J

倒推可以发现,若游戏能结束,轮数一定不超过 \lfloor \log(x+y) \rfloor

所以卡住上限暴力即可。

赛时写的直接模拟 + 剪枝,也可以通过。

K(待补)

许可协议:  CC BY 4.0