如何查找是否存在从顶点 x 到顶点 y 且包含边 e 的简单路径

2023-12-19

所以我面临这个问题,我希望有人可以帮助我。

给定一个无向的图 G = (V, E),2 个顶点 x,y 和一条边 e = (v,u)。

建议一种算法来查找是否存在简单的路径从 x 到 y,包括边 e。

所以这里的重点是简单路径而不是常规路径,对于常规路径来说,使用 BFS 搜索从 x 到 v 的路径和从 u 到 y 的路径是一个简单的问题。

我知道可以使用最大流方法解决问题,但我只是不知道如何构建一个可以在其上实现最大流算法的新图,以便它告诉是否达到上述标准,我希望得到帮助。

提前致谢。


不共享边(边无关)

您可以在 x 和 y 处使用 +1 源,在 u 和 v 处使用 -1 汇来求解最大流量。

删除边 e,并将所有其他边设置为容量 1。

当且仅当您可以在这个新的最大流问题中找到流为 2 时,存在一条通过边 e 从 x 到 y 的简单路径。

不共享顶点(顶点无关,即简单路径)

分割每个顶点v[i]在原始图中分成两个顶点,a[i] and b[i].

对于之间的每个无向边v[i] and v[j]在原来的情况下,添加有向边b[j] to a[i] and b[i] to a[j]容量为1。

还添加一条有向边a[i] to b[i]每个顶点的容量为 1v[i].

这个想法是流量必须始终到达一个a[i]顶点,并从 a 离开b[i]顶点,经过容量 1 瓶颈后a[i] to b[i]。这确保每个顶点只能使用一次。

使用这个新图,继续处理与边缘无关的情况。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何查找是否存在从顶点 x 到顶点 y 且包含边 e 的简单路径 的相关文章

  • 将数字 n 拆分为 k 个不同数字的总和

    我有一个数字 n 我必须将它分成 k 个数字 使得所有 k 个数字都是不同的 k 个数字的总和等于 n 并且 k 最大 例如 如果 n 为 9 则答案应为 1 2 6 如果 n 为 15 则答案应为 1 2 3 4 5 这就是我尝试过的 v
  • 在哪里可以找到有关双三次插值和 Lanczos 重采样的好读物?

    我想用 C 实现上述两种图像重采样算法 双三次和 Lanczos 我知道现有的实现有几十种 但我仍然想制作自己的实现 我之所以这么做 部分原因是我想了解它们是如何工作的 部分原因是我想为它们提供一些主流实现中没有的功能 例如可配置的多 CP
  • 使用 stl sort 对表进行排序

    我有一个巨大的表 约 50Gb 格式为 i j k 来自稀疏矩阵 存储为 uint32 t idx1 idx2 float vals uint32 t tablesize 我想使用给定的比较函数 即 idx1 和 idx2 的函数 对其进行
  • 如何确定字符串的最小公约数?

    我在面试时被问到以下问题 并被它难住了 我遇到的部分问题是要下定决心要解决什么问题 起初我并不认为这个问题在内部是一致的 但后来我意识到它要求你解决两个不同的问题 第一个任务是弄清楚一个字符串是否包含另一个字符串的倍数 但第二个任务是在两个
  • 随机排列

    我无法找到一种随机洗牌元素的好方法std vector经过一些操作后 恢复原来的顺序 我知道这应该是一个相当简单的算法 但我想我太累了 由于我被迫使用自定义随机数生成器类 我想我不能使用std random shuffle 无论如何这没有帮
  • 在大文件中查找重复项

    我有一个非常大的文件 大约有 1500 万个条目 文件中的每一行都包含一个字符串 称为键 我需要使用 java 查找文件中的重复条目 我尝试使用哈希图并检测重复的条目 显然 这种方法向我抛出了 java lang OutOfMemoryEr
  • 加权图的 BFS 算法 - 寻找最短距离

    我看过很多帖子 即 post1 https stackoverflow com questions 30409493 using bfs for weighted graphs post2 https cs stackexchange co
  • 为什么使用 no-op 来填补 paxos 事件之间的空白是合法的?

    我正在学习Paxos算法 http research microsoft com en us um people lamport pubs paxos simple pdf http research microsoft com en us
  • 为什么 n 按位和 -n 总是返回最右边的位(最后一位)

    这是Python代码片段 1 1 1 2 2 2 3 3 1 看来任何n n总是返回最右边 最后 位 我真的不知道为什么 有人可以帮助我理解这一点吗 这是由于负数以二进制表示的方式 称为二进制补码表示 创建某个数字 n 的补码 换句话说 创
  • 寻找 5 字节 PRNG 的种子

    这是一个古老的想法 但从那时起我就无法找到一些相当好的方法来解决它提出的问题 所以我 发明 了 见下文 一个非常紧凑的 在我看来 性能相当好的 PRNG 但我无法找出算法来为其在大位深度上构建合适的种子值 我当前的解决方案只是暴力破解 它的
  • 沿着长数据序列在固定大小的移动窗口中查找中值

    给定一个数据序列 可能有重复项 一个固定大小的移动 窗口 从数据开始处每次迭代时移动窗口 序列 使得 1 从窗口中删除最旧的数据元素并添加新数据 元素被推入窗口 2 求每次移动时窗口内数据的中位数 以下帖子没有帮助 有效地找到随机序列的中值
  • 地形/山地算法未按预期工作

    我想使用一个非常基本的原理创建一个上面有山的地形 如以下高度图所示 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 2 1 0 0 0
  • 如何发现“贪婪”算法?

    我正在读一本关于 贪婪 算法 但我很难发现它们解决真正的 顶级程序员 问题 If I know给定的问题可以用 贪婪 算法来解决 因此编写解决方案非常容易 然而 如果我没有被告知这个问题是 贪婪的 我就无法发现它 用 贪婪 算法解决的问题有
  • 如何改进 PHP 分页算法?

    我正在研究 PHP 中的分页算法 我可以猜测它需要改进的空间 所以我想对如何改进它有一些想法 无论是从 UI UX 的角度清理代码本身 还是你能想到的任何其他东西 该算法应输出如下所示的分页 1 2 3 6 7 8 97 98 99 or
  • 将所有奇数位置的元素移动到左半部分,将偶数位置的元素移动到右半部分

    给定一个包含正整数和负整数的数组 将所有奇数索引元素移动到左侧 将偶数索引元素移动到右侧 问题的难点是在维持秩序的同时就地做 e g 7 5 6 3 8 4 2 1 输出应该是 5 3 4 1 7 6 8 2 如果顺序不重要 我们可以使用快
  • 对产品列表进行分类的算法? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我有一个代表或多或少相同的产品的列表 例如 在下面的列表中 它们都是希捷硬盘 希捷硬盘 500Go 适用于笔记本电脑的希捷硬盘 120
  • 具有 3 路划分的快速排序

    什么是三向分区快速排序 画一个数组 3 5 2 7 6 4 2 8 8 9 0 A 两分区快速排序会选择一个值 比如 4 并将每个大于 4 的元素放在数组的一侧 将每个小于 4 的元素放在另一侧 就像这样 3 2 0 2 4 8 7 8 9
  • 欧拉项目 #18 方法

    我正在研究一个欧拉项目 具体来说 18 总而言之 这个想法是从三角形中找到最大路径 3 7 4 2 4 6 8 5 9 3 3 7 4 9 23 读到这里 大多数人表示 通过从下到上工作可以正确解决这个问题 而不是使用从上到下 贪婪 工作的
  • Python求矩阵动态规划中最大的平方

    我有一个矩阵如下 Python matrix o o o oo o o o ooo o o oo o o oo 其中 o 是一个障碍 我需要找到这个矩阵中最大的正方形 并替换相应的 带有 x 如下所示 xxxo o o xxxoo xxxo
  • Networkx 中 Louvain 分区的可视化

    请帮助我更改 Louvain 聚类算法结果的可视化 我从网站上获取了代码https github com taynaud python louvain https github com taynaud python louvain我可以重写

随机推荐

  • 最优雅的项目分类用户界面?

    我有一个项目集合 用户需要以多种方式对这些项目进行分组 分类 举个例子 假设它是汽车的集合 用户希望按以下方式对它们进行分类 颜色 红 银 蓝 黑等 车身形状 掀背车 轿车 轿跑车 旅行车等 座位 2 4 5 6 等 etc 您是否遇到过一
  • 使用 DI 进行类注入有什么意义吗

    在 Angular1 中 我们经常使用工厂来注入类 而不是实例 在 angular2 中 我可以做同样的事情 provide MyClass useFactory gt return MyClass constructor MyClass
  • 多个 PostConstruct 方法?

    它说在Java 的文档 http docs oracle com javaee 7 api javax annotation PostConstruct htmlPostConstruct 页面 该注解只能注解一种方法 但我只是尝试使用 P
  • AVL树最小节点

    高度为 h 的 AVL 树中的最小节点数是多少 我在互联网上做了一些研究 但它们都很令人困惑 n h 是高度为 h 的 AVL 树的最小节点数 则 n 0 1 n 1 2 n h 1 n h 1 n h 2
  • sas 日期时间转 R 日期格式

    我有一个包含日期时间变量的 SAS 数据集 我已使用 sas7bdat 包将此数据集移植到 R 中 但日期时间变量以整数格式显示 例如 1706835972 有什么办法可以将这个整数转换为日期格式吗 要准确匹配默认日期时间结构的 SAS 输
  • reinterpret_cast 为相同类型

    考虑以下程序 struct A int main A a A b a A c reinterpret cast a a 编译器 g 14 抛出一个错误invalid cast from type A to type A 为什么转换为相同类型
  • “请求中的 URI 无效”尝试代理 iframe 内容以进行本地调试

    我正在尝试调试包含 iframe 的页面中的问题 为父页面提供服务的网站是我正在处理的代码 我可以轻松地在本地运行 但 iframe 的内容来自我无权访问的代码 有一些保护措施会阻止跨域 iframe 这在生产中不会成为问题 因为它们将在同
  • 如何在Linux上后台无限运行脚本?

    我有一个带有无限循环的 PHP 脚本 我需要这个脚本永远运行 所以 我跑 php path to script php gt dev null 它在我当前用户的安全上下文中在后台运行 但是当我关闭终端窗口 注销 时 CentOS Linux
  • 从命令行运行 PyCharm 项目

    我正在尝试将我的项目部署到服务器并在那里运行它 当我尝试从命令行启动脚本时 它显示错误 导入父目录中的脚本时 我使用 PyCharm 制作了该项目 python 2 7 10 并将其分散到多个目录中 这些文件夹看起来像这样 项目 dir s
  • 匹配澳大利亚商业号码 (ABN) 的正则表达式

    我需要一个正则表达式来匹配一个值 其中每个字符可以是 0 到 9 之间的数字或空格 该值必须恰好包含 11 位数字 例如 它应匹配格式为 012 345 678 90 或 01234567890 的值 有人可以帮我解决这个问题吗 为了将来可
  • Camunda 使用 REST 获取 XOR 网关的机会

    I have the following situation 我想要做的是在我的 Angular 应用程序中获得一个下拉菜单 其中列出了书籍的所有机会 所以我可以在 哈利 波特 白鲸记 和 鲁宾逊漂流记 之间进行选择 当我选择一本书并按提交
  • 沙盒 AppDomain 中的线程安全

    我有一个应用程序域来托管不受信任的代码 程序集 我用安全属性解决了所有安全问题 效果很好 不受信任的代码在专用线程上运行 CLR 是 2 0 这就是我所拥有的应用程序域Shell http code google com p robocod
  • 在实践中(而非理论上),小批量与实时流有什么区别?

    在实践中 而非理论上 小批量与实时流有什么区别 从理论上讲 我理解迷你批次是在给定时间范围内进行批处理的东西 而实时流更像是在数据到达时执行某些操作 但我最大的问题是为什么不使用带有 epsilon 时间范围 例如一毫秒 的迷你批次或者我想
  • 为什么 Firefox 即使输入不同的名称也会自动完成?

    或者 Firefox 如何确定密码 用户名的去向 如果我更改输入元素的名称 id 标题 类 Firefox 会继续用密码或电子邮件填充它 如果我正确理解 Firefox 的源代码 浏览器首先会在表单中查找密码字段 如果表单包含超过 3 个密
  • 使用 Dropout 时的验证损失

    我试图了解辍学对验证平均绝对误差 非线性回归问题 的影响 无辍学 辍学率为 0 05 With dropout of 0 075 在没有任何 dropout 的情况下 验证损失大于训练损失 如下所示1 https i stack imgur
  • 如何解压缩特定文件夹?

    如何使用 Ant 解压缩特定文件夹 具体来说 我下载了 apache tomcat 6 0 29 zip 其中包含文件夹 apache tomcat 6 0 29 我希望 Ant 解压 apache tomcat 6 0 29 下的所有内容
  • Gitlab CI部署AWS EC2

    我们有一个 lumen 应用程序 我们将项目移动到 GitLab 如果一切正常 我们想拉取该项目 我们添加两个脚本 gitlab ci yml variables All or variables stages test productio
  • airflow postgresql 后端:(psycopg2.OperationalError)致命:用户“airflow”的身份验证失败

    尝试在centos7机器上使用postgresql作为airflow v1 10 5 的后端 在本文之后 https www ryanmerlin com 2019 07 apache airflow installation on ubu
  • 带有 persistence.xml 的 Intellij JPA 控制台

    我正在使用 Intellij 13 设置无 xml 持久性 JPA Hibernate 4 Spring 3 当我尝试在 jpa 控制台中执行查询时 出现以下错误 javax persistence PersistenceException
  • 如何查找是否存在从顶点 x 到顶点 y 且包含边 e 的简单路径

    所以我面临这个问题 我希望有人可以帮助我 给定一个无向的图 G V E 2 个顶点 x y 和一条边 e v u 建议一种算法来查找是否存在简单的路径从 x 到 y 包括边 e 所以这里的重点是简单路径而不是常规路径 对于常规路径来说 使用