题解 CF1654G Snowy Mountain
先一遍 BFS 求出 。
考虑每个点滑雪的最优路径是什么。是先不重复经过点,滑到一个点 ,其中点 满足其与一个相同高度的点相连。在 与旁边这个点横跳,直到能量耗尽,最后滑下到底。
假设从点 出发,能找到 的最小高度是 ,那么 的答案应当是 。于是题目转化为对每个点找到能到达的最小高度的 点。
令所有符合条件的 点构成集合 ,我们容易发现 是 级别的。所以本质不同的 是 级别的。
对每个符合的高度求出能不能到所有点就行了。可以通过分层的 BFS,对每层找到每个点需要多少能量 可以到达符合的 点就行了,每层之间传递然后到下一层,单次是线性复杂度。具体地,如果 与 有边:
- 在同一层: 可以用 更新。
- 不在同一层: 可以用 更新。
总时间复杂度是 。
我的代码写得太复杂,就不放了。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 张高兴的大模型开发实战:(一)使用 Selenium 进行网页爬虫
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构