省选集训-模拟赛 3
A
考虑暴力 dp,设
注意到对于
这启发我们将 dp 状态重新定义为
这样看似很暴力,但是事实上可以分析:设当前有
考虑求函数
该函数在
还存在一个折半法:考虑将前
还存在一个抽象复杂度做法:可以基于 LIS/LDS 给出暴力枚举(在此基础上增加元素),而我们知道
B
考虑分治计算答案,设中间轴是
容易发现,走回头路的情况只有一种:
如果要走回头路,则必然是第一行与第三行之间转换,且 mid 左边至多一次,mid 右边至多一次。
而走回头路,最优的 U 字可以预处理(通过前缀和即可知晓,顺序扫一遍,每次相当于加入一条竖线,并给所有竖线加上若干权值)。
注意 U 字并不一定在
那么现在我们就可以考虑计算了。
设
这个可以先简单 dp 不走回头路的情况(这一定不会超出
那么
而我们需要计算的就是对于所有的
其实挺容易的,我们考虑枚举
我们优先让
那么以 0 取最小为例,事实上是:
这是一个二维偏序问题,容易计算。
因此本题
C
做法很多啊,根据 lcm 有决策单调性(四边形不等式)等等。
讲一个独一无二的反贪做法:我们考虑从
首先每个
考虑在
且由于最优性,若存在
根据这样的限制条件打表发现只有 27 个方案,枚举取最优即可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!