algorithm - 对于每个节点 v:找到从 s 到 v 的更便宜的彩色路径
问题描述
令 G = (V,E),其中每个节点具有三种颜色 {R, G, B} 中的一种。
如果路径(不一定简单)包含所有颜色,则将其称为彩色。
输入:如上的有向图 G(包括每个节点的颜色),s∈V,和正权重 w:E → Q。
输出:对于每个节点 v:找到从 s 到 v 的更便宜的彩色路径(不一定简单) (如果不存在则返回无穷大)。
解决方案
您可以使用Dijkstra 算法的修改形式从节点开始执行此操作s
。对于找到的每条路径,跟踪迄今为止在该路径中使用了哪些颜色;当将路径的延续插入优先级队列时,新路径可能包括一种附加颜色。在更新节点处的“最佳”路径时,可能有多个“最佳”路径,因为两条路径可能使用不同的颜色,或者一条路径可能更短但使用的颜色更少。
这看起来像是一个家庭作业问题,所以我将把其余的细节留给你自己解决。
推荐阅读
- python - 阻止 Python 尝试将 \r\n 添加到文件名?
- git - 你如何让你的本地仓库与服务器匹配?
- javascript - JS,如何调用无名列表
- ios - Xcode 无法生成 Swift UI 预览 - 由于内部错误导致构建中止:planningFailed
- sql - 对 SQL Server 附加本地数据库大小的困惑
- r - 使用路径变量在 R Markdown 中插入图像
- html - 如何使用 CSS Grid 实现这种布局?
- python - 通过传递列表/元组来更改 pandas matplotlib 条形图中的条形颜色
- ios - 仅在 iOS 14 中,我的 uiwebview 在 stringByEvaluatingJavaScriptFromString 中崩溃
- javascript - 如何将字段添加到没有属性的数组反应js