*Codeforces Round 1033 (Div. 2) and CodeNite 2025
A
简单讨论即可,限制了大小关系好评。
B
经典套路把相撞反弹看成穿过,简单讨论即可。
C
可以发现 \(\le x\) 的数会出现 \(\ge x\) 次,也就是排序后 \(d_x\le x\)。
从 \(1,\dots,n\) 开始每次减最靠前的最大值,容易得出排序后的 \(d_x\) 或无解。
考虑构造链,从后往前扫,如果变小了就放那个数,否则放从 \(n\) 开始递减的数,不难发现合法。
D
注意到 \(n\le(a-1)k\) 时总是可以构造出每列都没有 \(a\) 个相同元素的矩阵,而根据抽屉原理 \(n=(a-1)k+1\) 时总是存在 \(a\) 个相同元素,同时为了最优只会出现一组。
把出现位置也算上可得有 \(\binom{n}{a}k\) 种情况,注意到 \(m\le\binom{n}{a}k(b-1)\) 时总是可以构造出没有 \(b\) 个相同情况的矩阵,而根据抽屉原理 \(m=\binom{n}{a}k(b-1)+1\) 时总是存在 \(b\) 个相同情况。
因此答案为 \(((a-1)k+1,\binom{(a-1)k+1}{a}k(m-1)+1)\),暴力计算组合数即可。
E
确定了移动次数之后肯定贪心选大的减小的加,用二分优化可以做到 \(O(n\log V)\)。
可以发现这个东西有凸性,二分斜率即可,时间复杂度 \(O(n\log^2 V)\)。

浙公网安备 33010602011771号