

解题思路
- 按照到
的距离远近,进行分层
为第一层
- 分层步骤:用一个集合记录还未定层的点,用
逐层确定
- 对于当前点
- 与其有连边的(不是删边)且还未确定的点,确定为
的下一层,入队列
- 没连边且还未确定的点,入集合(每次决策建立新集合,用浅拷贝)
- 直到集合为空
- 此时,到
的最优距离确定
- 长度为
的方案数即为答案
- 统计方案数,考虑容斥
- 逐层统计
- 对于当前层,不考虑删边,到该层每一个点的最优距离的方案数(dis+1)为上一层的方案数
- 考虑删边,若
删去,则
的方案不会被统计到
中(不是最优,+1),
- 注意无法到达的点距离为
,需处理
- 最终答案为
- 对于每层的点不会有重复,使用

本文介绍了一种使用深度优先搜索和容斥原理解决图中节点分层问题的方法,计算从给定点到其他点的最优距离并统计不同距离的方案数,避免了重复计数。
最低0.47元/天 解锁文章
222

被折叠的 条评论
为什么被折叠?



