恰好具有 k 个颜色边的生成树

2023-12-02

我有一个连通的无向图,其边为黑色或白色,并且有一个整数 k。 我正在尝试编写一个算法来判断是否存在具有正好 k 个黑边的生成树(不一定必须找到实际的树)。

我使用克鲁斯卡尔算法来查找生成树中黑边的最小和最大可能数量。如果 k 超出此范围,则不存在具有 k 个边的生成树。

但我很难思考是否对于该范围内的每个 k 都必须有一棵生成树。我的直觉说是的,它对我尝试过的每个例子都有效,但我不知道如何证明它。

有什么建议吗?提前致谢。


令 G_min = 具有最少黑边的生成树。

令 G_max = 具有最大黑边数的生成树。

令 k_min = G_min 中的黑边数量

令 k_max = G_max 中的黑边数量

证明如下。设置 G = G_min。对 G_max 中的每个黑边重复:

  1) If the edge is already in G, do nothing.
  2) If the edge is not in G, add it to G and remove another edge
     from the cycle thus induced in G.  Remove one not in G_max.

步骤2总是可能的,因为在每个周期中至少有一个边缘不在G_max中。

该算法保持 G 的生成树特性。它每一步最多添加一个黑色边缘,因此 G 演示了一个生成树,其中 k_min 和 k_max 之间的所有 k 都有 k 个黑色边缘。

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

恰好具有 k 个颜色边的生成树 的相关文章

  • 在 O(log n) 中查找排序矩阵(行 n 列)中的数字 [重复]

    这个问题在这里已经有答案了 假设我有一个矩阵 MxN 其行和列已排序 每行中的所有元素均按升序排列 每列中的所有元素均按升序排列 所有元素均为整数 无法做出其他假设 Example 1 5 8 20 2 9 19 21 12 15 25 3
  • 一种递归算法,用于在数组中查找总和为给定整数的两个整数

    我需要一个算法来确定数组是否包含两个总和为给定整数的元素 数组已排序 该算法应该是递归的并且运行时间为 O n 递归步骤应该基于总和 这意味着该方法传递总和并根据最终结果返回 true 或 false 如果找到两个元素 返回 true 否则
  • 用于整数分区的优雅 Python 代码 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我尝试编写代码来解决标准整数分区问题 维基百科 http en wikipedia org wiki Partition 28numb
  • 基数首先排序最重要的还是最不重要的,哪个更快?

    我一直在研究基数排序实现 到目前为止粘贴在下面的代码 代码是用 Java 编写的 但在 C C 中应该也能正常工作 正如您从实现中看到的 我首先执行最高有效位 即整数的第 31 位 这似乎更快 因为一旦子组完成 就不再需要迭代 例如 打个比
  • 数组中的重复元素[重复]

    这个问题在这里已经有答案了 这有点与this https stackoverflow com questions 2605766 how to find a duplicate element in an array of shuffled
  • 找到质数?

    为了判断 N 是否是质数 我们只需要查找所有小于或等于 sqrt N 的数字 这是为什么 我正在编写 C 代码 因此试图理解其背后的原因 如果 N 是一个正整数 且能被两个正整数 1 和 N 整除 则 N 是素数 由于数字的约数不能大于该数
  • 将整数列表划分为总和相等的 K 个子列表

    类似的问题还有1 https stackoverflow com questions 27322804 partition of a set into k disjoint subsets with equal sum and 2 http
  • 寻找下一个素数的最佳方法(Java)

    我被要求编写一个程序以最佳方式找到下一个素数 我编写了这段代码 但找不到最佳答案 有什么建议么 public static int nextPrime int input input now find if the number is pr
  • 给定一个点向量(可能无序),找到多边形(不是凸包)

    我目前有一个点向量 vector
  • 快速排序应用程序中这些交换代码行的目的是什么?

    我试图理解快速排序的实现或应用程序以找到第 k 个最小元素 这是我试图理解的代码 public int quicksort int a int start int end int k if start lt end int pivot pa
  • 如何检查无向图是否有奇数环

    我试图找到一个 O V E 时间算法来检查是否已连接 无向图有或没有奇数环 我正在考虑对图进行广度优先搜索 并尝试将顶点标记为黑色和白色 以便没有两个标记为相同颜色的顶点相邻 是否有任何已知的更简洁的算法可以在线性时间内解决这个问题 你的方
  • 当平方和为N时,如何找到四个变量的所有可能值?

    A 2 B 2 C 2 D 2 N给定一个整数N 打印出整数值的所有可能组合ABCD求解方程 我猜我们可以比暴力做得更好 天真的暴力会是这样的 n 3200724 lim sqrt n 1 for a 0 a lt lim a for b
  • float:使所有 Y 轴的刻度线对齐

    我有一个流程图 除了第一个 Y 轴之外 还使用具有不同数字刻度的辅助 Y 轴 我的问题是辅助刻度标签与第一个浮动轴制作的网格线不对齐 Flot 似乎正在运行一些内部算法来决定为轴显示多少个刻度标签 它对每个轴分别执行此操作 从而产生了我遇到
  • 填充体积算法

    我有一个具有一定尺寸长度 宽度 高度的盒子 我有不同长度 宽度 高度的物品 是否有现有的算法可以确定放入盒子中的最佳物品 这称为装箱 切割库存 背包问题 并且是 NP 难问题 一般来说 您只能通过使用启发式方法获得近似解 请参见示例 htt
  • 一种良好且简单的随机性测量方法

    获取一长整数序列 例如 100 000 个 并返回序列随机性的测量值的最佳算法是什么 该函数应返回单个结果 如果序列并非完全随机 则返回 0 如果完全随机 则返回 1 如果序列有点随机 它可以给出介于两者之间的东西 例如0 95 可能是一个
  • 计算字符串的所有子串中子序列的出现次数

    我想编写一个算法来计算字符串的所有子字符串中字符子序列 不相交 出现的总数 下面是一个例子 字符串 jabcohnnyjohnny 后续 约翰尼 包含子序列的子字符串 jabcohnny jabcohnnyj jabcohnnyjo jab
  • 如何在 JavaScript 中构建树模式匹配算法?

    好吧 这是一个有点复杂的问题 但是 tl dr 基本上是如何使用 模式树 解析 实际树 如何检查特定的树实例是否与特定的模式树匹配 首先 我们有我们的结构模式树 模式树通常可以包含以下类型的节点 sequence节点 匹配一系列项目 零个或
  • 从原点开始在离散 2D 网格上迭代向外螺旋的算法

    例如 这是预期螺旋的形状 以及迭代的每个步骤 y 16 15 14 13 12 17 4 3 2 11 18 5 0 1 10 x 19 6 7 8 9 20 21 22 23 24 其中线条是 x 轴和 y 轴 以下是算法每次迭代 返回
  • 线段树java实现[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 你知道 二进制 的良好实现吗线段树 http en wikipedia org wiki Segmen
  • 自动跟踪算法

    我正在尝试写一个simple跟踪例程来跟踪电影中的某些点 本质上我有一系列 100 帧长的电影 在黑暗背景上显示一些亮点 我每帧有大约 100 150 个点 它们在电影的过程中移动 我想跟踪它们 所以我正在寻找一些有效的 但可能不会过度实施

随机推荐

  • 改变放大镜的颜色

    放大镜的颜色是自动从 UITextView 的背景颜色中获取的 在文本视图下 我有一个图像 文本视图背景本身是不透明的 所以在这种情况下 即使 UITextView 下的图片是黄色的 放大镜也是白色的 是否可以覆盖放大镜的颜色 先感谢您 可
  • 配置不当:中间件模块“django.middleware.csrf”未定义“CsrfResponseMiddleware”类

    我的本地开发环境中没有这个问题 但我刚刚使用 nginx Gunicorn 部署了应用程序 第一次部署应用程序 每当我尝试发出请求时 我都会收到此回溯 2012 01 21 22 24 36 5712 ERROR Error handlin
  • 在 MATLAB 中声明全局变量

    有没有办法在 MATLAB 中声明全局变量 请不要回复 global x y z 因为我也能读书帮助文件 我已经声明了一个全局变量 x 然后做了这样的事情 function x test global x test1 end 函数在哪里te
  • file_get_contents - 无法打开流:HTTP 请求失败! HTTP/1.1 404 未找到

    将我的网站移动到新域后 我在 file get contents 方面遇到了一些奇怪的问题 我必须设置一个新的域和 IP 地址 使用 Plesk 才能使新的 ssl 证书正常工作 现在我的 file get contents 在同一域上调用
  • 数组本身的名称,它存储在哪里

    数组的名称如何存储在内存中 例如 如果我写 char arr 10 数组项从虚拟地址开始存储在内存中 arr 0 这实际上是 arr 的值 但是在哪里arr本身存储 静态多维数组的行也是如此 char arr 10 20 arr 本身以及
  • 如何在 C# 中将此 05:41:33 Apr 23, 2012 PDT 值转换为日期时间? [复制]

    这个问题在这里已经有答案了 可能的重复 使用 PST CEST UTC etc 格式的时区解析 DateTime 如何将 PDT 时间字符串转换为日期时间 我想将此值 05 41 33 Apr 23 2012 PDT 转换为 datetim
  • 如何在没有 libcurl 的情况下用 C 发出 HTTP get 请求?

    我想编写一个 C 程序来生成 Get 请求 而不使用任何外部库 仅使用 C 库和套接字是否可以实现这一点 我正在考虑制作一个 http 数据包 使用正确的格式 并将其发送到服务器 这是唯一可能的方法还是有更好的方法 使用 BSD 套接字 或
  • 主要 Xcode 7 Sprite Kit Atlas 错误

    所以今天我决定开始在 El Capitan 和 iOS 9 上测试我的游戏 这是一个大项目 我已经用业余时间从事了近 2 年的工作 所以我将代码移植到 Swift 2 0 单击运行按钮并祈祷 Apple 没有破坏 Sprite Kit 就像
  • 如何使用 Volley 在 Android 中发送“multipart/form-data”POST

    有谁能够完成发送multipart form data在 Android 中使用 Volley 进行 POST 了吗 我尝试上传没有成功image png使用 POST 请求到我们的服务器 我很好奇是否有人这样做 我相信执行此操作的默认方法
  • Web 浏览器控件的进度条

    如何使用 C 语言在 Windows 应用程序项目中放置和使用 Web 浏览器控件的进度条 看着那 这WebBrowser ProgressChanged event
  • 了解 Java 迭代器

    如果我运行以下代码 它将打印出 3 次重复内容 但是当我删除 while 循环内的 if 语句时 只是为了看看它会迭代多少次 它会启动一个无限循环 这实际上如何hasNext 方法有效吗 我认为这只会迭代 5 次 因为列表中有 5 个项目
  • 使用鼠标和触摸通过 Adorner 进行 WPF 拖放

    我希望这是一个好问题 所以我将详细写下我想要实现的目标 我在互联网上找到的内容 并展示我到目前为止所做的事情以及我尝试过的事情 我需要向我的应用程序添加拖放功能 我有图像 基本上是控件 我想将其拖动到列表框的项目 这是示例用户界面 这是我现
  • 我们如何使用 train_on_batch 执行提前停止?

    我在循环中手动运行纪元 并在循环中进一步嵌套小批量 在每个小批量中 我需要调用train on batch 启用定制模型的训练 是否有手动方法来恢复提前停止的功能 即打破循环 在实践中 提前停止 主要是通过以下方式完成的 1 训练 X ep
  • 扩展 BaseRequestOptions 时注入的依赖项未定义

    我正在延长BaseRequestOptions在 Angular2 中为每个请求添加标头 我也有一个Config提供基于域的键 值对的类 我需要将其注入到我的派生类中 import BaseRequestOptions from angul
  • C# - 异步返回值

    private TaskCompletionSource
  • Xdebug 异常类的方法

    是否可以看到 Xdebug 创建的扩展 Exception 类的方法 我想获取 HTML 格式的堆栈跟踪 因此 在破解之后 没有像 Niels 展示的那样的方法 但有一个名为 exception gt xdebug message 的公共属
  • 添加谷歌服务 - 任务“:app:processDebugResources”执行失败

    我正在尝试按照此网站上的步骤在 Android Studio 中实现 GCM 客户端 在 Android 上实现 GCM 客户端 正如 设置 Google Play 服务 中提到的 我编辑了应用程序的 build gradle 文件 使其看
  • ThreeJS 中的弯曲文本对象

    有this回购协议this例如 它已经有近 2 年历史了 因此不适用于 ThreeJS 的最新版本 我遇到以下错误和警告 error THREE Matrix3 getInverse no longer takes a Matrix4 ar
  • Python - 打印列表中既没有逗号也没有撇号的项目

    我的代码的最小工作示例 Create output data file out data file open output file w out data file write Header n out data file close li
  • 恰好具有 k 个颜色边的生成树

    我有一个连通的无向图 其边为黑色或白色 并且有一个整数 k 我正在尝试编写一个算法来判断是否存在具有正好 k 个黑边的生成树 不一定必须找到实际的树 我使用克鲁斯卡尔算法来查找生成树中黑边的最小和最大可能数量 如果 k 超出此范围 则不存在