Atcoder ABC395 题解
ABC395
A
判断有没有
B
随便递归一下,每层传入当前要覆盖的子矩阵的左上角坐标
C
显然最短的好的子数组一定要首尾相同,否则可以再缩。
于是用一个桶存下当前元素的上一个出现位置,这个位置到当前下标
D
画图理解。
先放代码:
submission.
蓝线表示
难搞的就是 swap 操作。我们不需要换鸽子,只需换巢上面贴的数字,即
E
建图:
也就是拆点。
蓝色边表示原始有向图。
这样拆点就可以保证不进行 reverse 操作时,不需走
然后就是 Dijkstra 的模板。
答案就是
F
注意到
至于 check 函数,我们可以从算出当前
于是
如果
形式上可以写成三分。
submission.
G
不会。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】