CF147B 题解
Solution
一道十分典型的 dp
题。有三个关键点分别是定义状态、优化和答案的统计。
-
首先定义状态,定义
表示 号节点,共走了不超过 条边,且是 的最长路径。不超过 条边是为了方便转移,而最长路径如果都为负环,说明需要走更多的边,实际上也是为了方便转移。但是这样是 转移的,所以用一个很常见的 trick 就是倍增。将状态定义变成这样: 表示 号节点,共走了不超过 条边,且是 的最长路径。然后状态转移便是 的,状态转移方程为 ,可以类比Floyd
算法的转移。 -
然后就是统计答案,注意在这时,你需要枚举
,如果 步可以达到最小正环,便继续考虑 是否可行。如果不行,就累加答案,仍然继续考虑 。
注意数组赋成
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端