P4042 [AHOI2014/JSOI2014] 骑士游戏
非常好的一道题,用到了一个重要的思路:消除
不要觉得这个东西很恐怖,其实这个东西并不复杂,只是名字有点吓人
我们容易想到对把原题抽象成一个图,我们容易想到如果该图为
但回到原题,我们发现
但我们同时也想到在这个环上一直绕,对答案来说一定是不优的(这里只是感性理解),但我们并不知道这个绕的策略是什么,因此这个问题让我们很难办
这里有一个重要的思路:消除
-
先计算部分信息,再通过其他的
加加减减,合并到当前信息去:换根 就是这个思路 -
如果对于一个
出现如果 更新 ,则 更新 绝对不优,则我们改变 顺序,再直接
这题用的是第二个思路
我们写出
容易得到递推:
我们发现什么,我们发现后面这个柿子就满足第二个方法,因为如果存在
因此我们让
-
如果在
更新完之前使用了 更新其他的点,则说明更新 一定要用到 的 值的点来更新,因此 ,用 更新一定不优 -
如果在
更新完后放到了堆中,但使用了 更新其他的点,则说明 ,同理 -
如果在
更新完后放入了堆中,且使用了 更新其他的点,则说明 ,这么做也是不劣的
通过这三种情况,就可以说明这个做法是正确的
最终复杂度
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?