[CF2101] Codeforces Round 1024 (Div. 1) 赛后总结

A. Mex in the Grid

考虑一维的情况,注意到 0 一定会放到中间,然后左右横跳地依次放后面的数。

二维的情况就是蛇形矩阵。

B. Quartet Swapping

首先观察到一个元素的下标奇偶性肯定不变,直接模拟,每次选择当前位同奇偶性的最小元素换过来,因为相邻的交换可以被视作任意排列,所以这样操作次数变为 \(O(n)\)

C. 23 Kingdom

相交包含有时是等价的。

拆贡献:

\[\begin{aligned} ans &= \sum_{x = 1}^n \max_{c_i = x}(i) - \min_{c_i = x}(i)\\ ans &= \sum_{x = 1}^n \max_{c_i = x}(i) - \sum_{x = 1}^n\min_{c_i = x}(i)\\ \end{aligned} \]

相当于如果我们只用考虑左右端点,而不用考虑左右端点之间的匹配,可以证明如果左右端点的选取都合法,一定存在一种匹配方案。

所以我们分别考虑左右端点,我们考虑计算出选取 \(k\) 个左端点的情况下,最小的 \(\sum_{x = 1}^n\min_{c_i = x}(i)\) 是多少,具体而言就是枚举一个前缀,然后每次到一个位置,需要判断一个最小的 \(k\) 使得满足:“至少存在 \(i\)\(\ge k - i + 1\) 的位置”,这个可以线段树维护,右端点同理。

最后我们可以计算出选取 \(1\sim k\) 个区间的答案,取最大值即可。

总结

我是奶龙,C 没开 long long 以为假了,赛后看到输出 2147381775 答案是 7947954498 天都塌了,以后一定要注意这个问题,尤其是深夜场脑子不清楚的情况下!!!

posted @ 2025-05-12 10:00  MoyouSayuki  阅读(154)  评论(0)    收藏  举报
:name :name