do_while_true

一言(ヒトコト)

CMO 2023 T1 T6

T1

\(n=2^{2024}\) 时最优方案为 \(2,2,\cdots ,4\) 此时 \(\lambda_0=\frac{1}{1012}\)\(\lambda_{\min}\geq \lambda_0\)。对于 \(\lambda =\frac{1}{1012}\) 构造,令 \(n=\prod p_i\)\(p_i=n^{a_i}\) 其中 \(p\) 均为素数。那么问题转化为:

\(\sum a_i=1\),其中 \(a>\frac{1}{1012}\) 的要单独分组 \(a\leq \frac{1}{1012}\) 可以若干个分一组,但是要满足一组内的 \(\sum a\leq \frac{1}{1012}\)

充分性给出贪心构造策略:若存在 \(a_x+a_y\leq \frac{1}{1012}\) 那么将 \(x\) 组和 \(y\) 组合并成一个新的组,其大小为 \(a'=a_x+a_y\),若有多个合法的任选两个进行合并,直到不能合并为止,此时一定有组数 \(m\leq 2023\),即得到一个合法方案。

证明:若 \(m\geq 2024\),此时考虑 \(a_1\leq a_2\leq a_3\leq\cdots\leq a_m\),其中 \(a_1+a_2>\frac{1}{1012}\),那么一定有 \(a_2>\frac{1}{2024}\),则 \(a_3,a_4,\cdots,a_m\)\(>\frac{1}{2024}\) ,那么

\[\sum a=(a_1+a_2)+(a_3+a_4+\cdots+a_m)>\frac{1}{1012}+\frac{m-2}{2024}\geq \frac{1}{1012}+\frac{2022}{2024}=1 \]

\(\sum a=1\) 的条件不符,故 \(m\leq 2023\)

T6

这个做法抄的 by_chance 的。

\(n=99=4m-1\) 为顶点数,求最小操作次数使得能够从任意圆排列复原到顺时针 \(1,2,\cdots,n\) 排列(这等价于任意到任意)。观察答案的上界,定义“劣弧逆序对” \((i,j)\) 为从 \(i\) 逆时针走不超过 \(\frac{n-1}{2}\) 步能走到 \(j\),并且放在 \(i,j\) 上的数有 \(a_i<a_j\)。最终状态劣弧逆序对个数为 \(0\),而交换两个相邻的数劣弧逆序对至多 \(-1\)(若交换了 \(a_x,a_{x-1}\),分类讨论 \(a_x,a_{x-1},a_{x-\frac{n+1}{2}}\) 三者大小关系即可得证)。从而对于顺时针 \(n,n-1,n-2,\cdots,1\)\(\frac{(n-1)^2}{4}\) 个劣弧逆序对,所以答案的下界是 \(\frac{(n-1)^2}{4}\),现在证明任意圆排列均可以在不超过 \(\frac{(n-1)^2}{4}\) 步还原为 \(1,2,\cdots,n\)

考虑将环分为大小为 \(2m-1\)\(2m\) 的两部分,且两部分分别有 \(m\)\(\leq 2m\) 的数(称之为小数,反之为大数),因为对于 \([1,2m-1],[2m,4m-2]\) 如果有其一有 \(m\) 个小数,那么即找到合法的解。否则一定其一 \(<m\) 个小数,另一 \(>m\) 个小数(如果都 \(<m\) 那么小数个数 \((m-1)+(m-1)+1<2m\) 矛盾。此时考虑将一个长度为 \(2m-1\) 的区间在环上转的过程中,小数个数变化只能是 \(\pm 1\)\(0\),而 \(<m,>m\) 个小数的区间均存在,说明一定存在小数个数为 \(m\) 的长为 \(2m-1\) 的区间。

现在考虑将两段圆弧分别排序,让小数凑在一起,大数凑在一起,再将小数内部排序,大数内部排序。假设圆弧是分为左右两部分,那么有小数凑在上半部分和大数凑在上半部分两种情况,只需其中一种合法即可。

首先考虑圆弧内部的排序,此时变成直线上的问题,那么最小交换次数就是(严格)逆序对个数,两个方向加起来那就是 01 对个数,所以这部分两种情况的操作总和是 \(m(m-1)+m^2=2m^2-m\)

再考虑同种数之间的排序,对于较小的数,假设两侧分别是 \(b_1,b_2,\cdots ,b_m,c_1,c_2,\cdots,c_m\),注意到对圆弧内部排序时并不会破坏 \(b,c\) 内部的相对顺序,所以两种情况相当于在直线上排序 \(b_1,b_2,\cdots ,b_m,c_1,c_2,\cdots,c_m\)\(c_1,c_2,\cdots,c_m,b_1,b_2,\cdots ,b_m\),那么逆序对分为 \(b,c\) 内部和 \(b,c\) 之间。\(b,c\) 之间贡献次数总和一定是 \(m^2\),而 \(b,c\) 内部最劣情况下是完全逆序,所以此时两种情况的操作总和是 \(4\frac{m(m-1)}{2}+m^2=3m^2-2m\)

同理,对于较大的数,操作次数总和是 \(2\frac{m(m-1)}{2}+2\frac{(m-1)(m-2)}{2}+m(m-1)=3m^2-5m+2\)

那么 \((2m^2-m)+(3m^2-2m)+(3m^2-5m+2)=8m^2-8m+2=2\frac{(4m-2)^2}{4}=2\frac{(n-1)^2}{4}\),说明两种情况至少有一种操作次数 \(\leq \frac{(n-1)^2}{4}\),证毕。

对于 \(n=4m+1\) 可以用同样的方式计算证明。

posted @ 2023-11-28 23:15  do_while_true  阅读(119)  评论(1编辑  收藏  举报