*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)\)

posted @ 2025-06-29 11:21  ax_by_c  阅读(123)  评论(0)    收藏  举报