CF1860E

原题

翻译

首先考虑一个暴力的做法,暴力建图,对每一个询问跑BFS,总复杂度O(n2q),不可过

我们发现这个图的瓶颈在于对于光标的跳转(即第三种操作),我们可以建一个虚拟节点来解决这个问题,原图的点数变为O(n+D2),边数O(n),其中D表示字母种类数

这时我们把原题的复杂度优化成了O(nq),但还是不可过

我们发现一个问题,虚拟节点的个数很少,且对于一个询问,如果最优路径不经过任何一个虚拟节点,我们可以直接O(1)的计算他们的距离

而如果其最优路径经过了若干个虚拟节点,我们可以枚举经过的虚拟节点之一是什么,计算出sfst的距离,这里可以直接使用01bfs解决

我们这么分情况讨论的优点是我们只枚举了O(D2)个虚拟节点,所以总复杂度O(nD2+qD2)

posted @   FOX_konata  阅读(19)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 一文读懂知识蒸馏
· 终于写完轮子一部分:tcp代理 了,记录一下
点击右上角即可分享
微信分享提示