[省选联考 2024] 季风
Description
给定 和 个整数 。
找到最小的非负整数 ,使得存在 个实数 满足以下条件,或报告不存在这样的 :
特别地, 时,认为 和 均为 。
Solution
我很唐,写了三个多小时。
在坐标系中看问题。注意到如果把 看成点,那么所有点都满足条件 ,等价于所有点都在一个以坐标系原点为中心的,对角线长 的 倾斜的正方形中。
假设我们现在枚举了一个 ,并且算出了 和 ,分别设为 和 。
那么平均下来每个 和 应该分别要达到 。
那么有结论,如果 满足题目条件,那么一定有 。因为我们希望让平均坐标为 的若干个点都在一个封闭图形中,那么最优方案一定是将这些点都集中在平均坐标上,这样它们占的面积最小。而如果连这种最优方案都不满足,那么一定没有方案满足题目的条件的。
将 拆分成 的形式。为了简便,下面设 。枚举 。分别设 为 和 数组的前缀和。
那么 。
设 ,那么对于每个 ,题目就转换为了求下面的不等式的解集。
恒大于 ,所以可以分类讨论 和 的符号,分四类讨论,把绝对值拆开。
下面以 为例。继续推下去。
设 为 , 为 ,那么又转化成了不等式 的形式。这个不等式方程是很好解的。最后求出解集和 的交集,取解集中最小的数就可以求出这种情况下最小的 ,进而得到 。
另外三类情况同理。分类讨论完取四类情况的最小值就是对于当前 的最小 值。
对于所有的 算一遍,这题就做完了。时间复杂度 。
代码实现方面,实现一个求 的函数,就非常好写了。
本文作者:AzusidNya の 部屋
本文链接:https://www.cnblogs.com/AzusidNya/p/18052815
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步