Codeforces Round 954 (Div. 3)
A. X Axis
- 给定
。求 。
显然排序后取中位数。
B. Matrix Stabilization
- 给定
的矩阵 。每次操作找到一个 最小的前提下 最小的,满足 严格大于所有与它相邻的值的 ,并将 。输出不能操作时的矩阵。 , , 。
说明:
- 以下分析复杂度时认为
同阶。 - 为方便表述,我们定义下标的不等关系为(其余不等关系
的定义类比):
- 定义「操作
」为 。 - 与
相邻的位置可能会有 个。方便起见我们在 的上下左右分别用 填满。这样就一定是 个了。
暴力做法显然会爆炸。例如当
进一步观察发现,如果
此时你就有了一个
考虑如何优化复杂度。如果我们称「『操作
考虑证明。
实际上我们需要证明两件事情:
- 如果
是满足「大于所有与它相邻的值」的,那么接下来会「操作 」若干次,直到 不满足「大于所有与它相邻的值」,也就是成为这些值中的最大值。 - 如果这一轮操作
,那么下一轮操作的 一定满足 。
显然这两个命题可以合并成:
- 如果这一次操作
,那么下一次操作的 一定满足 。
考虑反证法。证明:
- 如果这一次操作
,那么下一次操作的 可能满足 。
是伪的。
分类讨论。以下讨论的前提都是
相邻:那么操作 后一定有 。此时显然无法「操作 」,因为 就是一个与 相邻的且不大于 的位置。因此矛盾。 不相邻:如果「操作 」后可以「操作 」,那么「操作 」前也一定可以「操作 」。所以上一步一定是「操作 」而不是「操作 」,这是因为 。因此矛盾。
综上,原命题得证。
C. Update Queries
- 给定长度为
的字符串 和长度为 的数组 和一个长度为 的字符串 。你可以将 和 打乱顺序,然后依次按照 执行 。求最后得到的字典序小的 。 。
显然贪心。发现
D. Mathematical Problem
- 给定一个长度为
的数字串。你需要在 个空中选择 个空插入运算符 或 。求表达式的最小值。 , 。
显然
显然 DP。设
E. Beautiful Array
- 给定长度为
的数组 和一个整数 。你可以重新排列 使得将 成回文串的所需操作次数最少。定义一次操作为将任意 。 , 。
考虑若只有两个数
不难发现
否则,若
考虑
先考虑偶数。我们可以统计出每个在模
给定一个数组
。将这些数两两配对,使两个数的差的绝对值之和最小。
注意这里我们没有考虑
令
若
给定一个长为奇数的数组
。删除一个数后,将这些数两两配对,使两个数的差的绝对值之和最小。
若删除的数是
F. Non-academic Problem
- 给定
个点 条边的简单无向连通图。你需要删除一条边使得图中连通的顶点对 最少。求这个最小值。 。
显然删除一个 e-dcc 中的点一定是不优的,因为这样不会连通的顶点对不会减少。
所以将 e-dcc 缩点,每个点的点权为其代表的 e-dcc 中的点数。因为原图连通所以形成了一颗树。我们考虑删除一条树边带来的收益。
若令这条边为
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库