- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
给定 G=(V,E) 每条边都具有这三种颜色中的一种 {green,red,blue}。如果一条路径包含所有三种颜色,我们将其称为“彩色路径”。
Input: graph G(V,E),weight function w:E->Q+ , colored edges and vertices s .
output: algorithm that finds for every vertices v, a shortest path from s
that is Colored path
我的解决方案是遍历图形,并为每个顶点计算路径具有的颜色数。创建图的 3 个副本,名称为 G1,G2,G3
对于每个满足 c(v) = 2 的 v(c 是从 s 到该路径的颜色数),在第二个图 (G2) 中将 v1 连接到 v2,边权重 = 0。
对于每条边 c(v)= 3 从 v2(从 G2)连接到 v3(到 G3),边权重 = 0。
从 s 到 t3(在 G3 中)运行 dijkstra。
我的解决方案正确吗?
最佳答案
我觉得不对。
最简单的方法是认识到在正常的 Dijkstra 中,每个节点中只有一个重要的东西要存储,那就是从根开始的绝对最短路径长度。
对于彩色路径,您必须为每种颜色组合存储最短路径长度。所以,对于 3 种颜色,你必须存储最短的红色路径、最短的蓝色路径、最短的绿色路径,以及最短的红蓝、红绿和蓝绿路径,最后是最短的红绿-蓝色路径。 (共有 7 种颜色组合)。
关于algorithm - 如何找到最短的彩色路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41934717/
例如,我有一个父类Author: class Author { String name static hasMany = [ fiction: Book,
代码如下: dojo.query(subNav.navClass).forEach(function(node, index, arr){ if(dojo.style(node, 'd
我有一个带有 Id 和姓名的学生表和一个带有 Id 和 friend Id 的 Friends 表。我想加入这两个表并找到学生的 friend 。 例如,Ashley 的 friend 是 Saman
我通过互联网浏览,但仍未找到问题的答案。应该很容易: class Parent { String name Child child } 当我有一个 child 对象时,如何获得它的 paren
我正在尝试创建一个以 Firebase 作为我的后端的社交应用。现在我正面临如何(在哪里?)找到 friend 功能的问题。 我有每个用户的邮件地址。 我可以访问用户的电话也预订。 在传统的后端中,我
我主要想澄清以下几点: 1。有人告诉我,在 iOS 5 及以下版本中,如果您使用 Game Center 设置多人游戏,则“查找 Facebook 好友”(如与好友争夺战)的功能不是内置的,因此您需要
关于redis docker镜像ENTRYPOINT脚本 docker-entrypoint.sh : #!/bin/sh set -e # first arg is `-f` or `--some-
我是一名优秀的程序员,十分优秀!