出题人题解

A

a1a_1 为奇数,输出 0。

a1a_1 为偶数且 a2ana_2\to a_n 存在小于 a1a_1 的奇数,输出 1。

否则输出 -1。

B

A<BA<B,则 1 1 和 n n 中必有一个是答案。

A>BA > B,则交换从高到低 AABB 不同的那一位。

C

可以发现,最优解必然在 {s=0,t=1}\{s=0,t=1\}{s=1091,t=109}\{s=10^9-1,t=10^9\}{s=0,t=109}\{s=0,t=10^9\} 三组解中的一组,逐一验证取最优即可。

D

首先发现,如果要删除障碍物,一定是删除一段连续的障碍物最优。

还可以发现,当 x>nx>\sqrt n 时,Lx2<0L-x^2 \lt 0,因此仅需要考虑 xnx\le \sqrt n

至此,可以暴力枚举所有的删除情况并取最优,第一层循环枚举所有障碍物,称当前枚举至第 ii 个障碍物。

第二层再枚举它前面的第 x+1x+1 个障碍物 jj,然后删除它们之间的 xx 个障碍物,并用 aiajx2a_i-a_j-x^2 更新答案 。

还需要考虑边界,为此添加两个分别位于 0,n0,n 的障碍物即可规避对边界的讨论。

E

考虑先构造一条 1n1\to n 的链,边权分别以 1n11\to n-1 分配。

那么对于 nn 个点的完全图的情况,接下来一次考虑边 13,24,35...1\to 3,2\to 4, 3 \to 5...,对于边 uvu\to v,所分配给它的边权必须满足它大于等于链 uvu \to v 的边权和。

可以如下分配边权。(给出 n=5n=5 的情况,邻接矩阵)

alt image-20230109125751736

对于非完全图的情况,把大的边去掉即可。

F

可以发现,每次碰撞,都会使得胜利方的球的大小减小。因此,若玩家 ii 想要获胜,最好的情况是让它参与最后一次碰撞即可。

问题转变为,对于每个 ii ,将除了 aia_i 以外的球碰撞合并为一个球,然后和 aia_i 比大小。有一个贪心的结论是,对于一堆球要碰撞,每次取最大的两个球碰撞,这样最终得到的球的大小一定是最小的。基于此有了一个 n2n^2 的做法。

再观察其他性质,如果一个较小的球最终能获胜,那么一个较大的球最终一定也能获胜。因此,在此基础上二分,得到了一个 nlognn\log n 的做法。