Codeforces Round 892 (Div. 2)
一言:
所谓人,无论是谁到了最后,都会形单影只。
——悠久之翼2
最令人无语的是最后三分钟交代码的时候把
这题乍一看每一个东西有四个要输入的,好像还挺复杂的,但仔细想想你就会发现,实际上只有
仔细想想,我们可以把
接下来我们仔细想想为什么。
首先可以发现,如果有一次传送是在向前面传送,那一定不是最优的(至少除去这些传送必然还会留下最优解)。可能你到了前面可以到达更大的
然后对于
首先我们可以想到一个
可以考虑枚举一个
但是这样的时间复杂度是
可以发现,最难处理的是
由于
可以发现,对于中间那一坨最大值,他好像可以在求出
-
当你发现每个东西里面的一些相关条件有些是无关紧要的时候,可以考虑把他删去来降低题目的复杂程度。
-
当出现绝对值的运算并且要求最值时,一定要想一想如果不考虑绝对值是否有可能让一些错误的值成为最值。如果否,那么你就可以直接把绝对值这东西删去了,这样更能方便推式子。
-
当你优化
的时间复杂度时,一定要思考一下当前状态与他之前的所有状态是否都有共同点(比如 与 的共同点就是两维之差都是 ),且把转移式中只跟当前这个数相关的部分去掉,如果是,那么可以通过这个共同点维护一个东西(比如维护一个 维护此前所有 的所有状态最值),使得你能够快速找到是从哪个状态转移来是最优的,并且在求出一个 式后,更新这个共同点维护的东西,从而优化复杂度。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】