CMO 2023 T1 T6

CMO 2023 T1 T6

T1

n=22024 时最优方案为 2,2,,4 此时 λ0=11012λminλ0。对于 λ=11012 构造,令 n=pipi=nai 其中 p 均为素数。那么问题转化为:

ai=1,其中 a>11012 的要单独分组 a11012 可以若干个分一组,但是要满足一组内的 a11012

充分性给出贪心构造策略:若存在 ax+ay11012 那么将 x 组和 y 组合并成一个新的组,其大小为 a=ax+ay,若有多个合法的任选两个进行合并,直到不能合并为止,此时一定有组数 m2023,即得到一个合法方案。

证明:若 m2024,此时考虑 a1a2a3am,其中 a1+a2>11012,那么一定有 a2>12024,则 a3,a4,,am>12024 ,那么

a=(a1+a2)+(a3+a4++am)>11012+m2202411012+20222024=1

a=1 的条件不符,故 m2023

T6

这个做法抄的 by_chance 的。

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

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

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

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

再考虑同种数之间的排序,对于较小的数,假设两侧分别是 b1,b2,,bm,c1,c2,,cm,注意到对圆弧内部排序时并不会破坏 b,c 内部的相对顺序,所以两种情况相当于在直线上排序 b1,b2,,bm,c1,c2,,cmc1,c2,,cm,b1,b2,,bm,那么逆序对分为 b,c 内部和 b,c 之间。b,c 之间贡献次数总和一定是 m2,而 b,c 内部最劣情况下是完全逆序,所以此时两种情况的操作总和是 4m(m1)2+m2=3m22m

同理,对于较大的数,操作次数总和是 2m(m1)2+2(m1)(m2)2+m(m1)=3m25m+2

那么 (2m2m)+(3m22m)+(3m25m+2)=8m28m+2=2(4m2)24=2(n1)24,说明两种情况至少有一种操作次数 (n1)24,证毕。

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

posted @   do_while_true  阅读(124)  评论(1编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
历史上的今天:
2022-11-28 「题解」Codeforces 1765L Project Manager

This blog has running: 1845 days 1 hours 33 minutes 19 seconds

点击右上角即可分享
微信分享提示