当前位置: 首页 > 知识库问答 >
问题:

求具有k个蓝色顶点的树的最优顶点覆盖

柴彬
2023-03-14

我需要为以下问题找到一种“动态编程”的html" target="_blank">解决方案:

  • 完美二叉树,T=(V,E)-(每个节点只有两个子节点,除了叶子)
    V=V(蓝色)∪ V(黑色)。V(蓝色)∩ V(黑色)=∅.

(换句话说,树中的一些顶点是蓝色的)

  • 树根'r'.
  • 整数k

顶点V'V的子集,它是T的顶点覆盖,并且|V'∩V(蓝色)|=k。(换句话说,覆盖V'包含k个蓝色顶点)

合法解V'的值是集合中的顶点数=|V'|。为了方便起见,我们将定义“非法律”解决方案的价值∞.

具有最小价值的解决方案。

(换句话说,最好的解决方案是一个覆盖的解决方案,它正好包含k个蓝色顶点,并且集合中的顶点数最小。)

我需要定义一个典型的子问题。(比如,如果我知道子树的值解是什么,我可以用它来找到问题的值解。)

并建议一个公式来解决它。

共有1个答案

马安邦
2023-03-14

在我看来,你走对了方向!不过,我认为您必须使用一个额外的参数来告诉我们任何拾取的顶点距离当前子树的根有多远。例如,它可能只是指示我们是否拾取当前顶点,如下所示。

乐趣(v, b, p)成为具有根v的子树的最佳大小,这样,在这个子树中,我们完全选择了b蓝色顶点,如果我们选择顶点,则p=1vp=0如果我们不。

答案是fun(r,k,0)fun(r,k,1)中的最小值:我们想要完整树的答案(v=r),精确地k顶点覆盖在蓝色(b=k)中,我们可以选择或不选择根。

那么,我们如何计算呢?对于叶子,fun(v,0,0)0fun(v,t,1)1,其中t告诉我们顶点v是否为蓝色(1如果是,0如果否)。所有其他组合都是无效的,我们可以通过说相应的值是正无穷大来模拟它:例如,对于叶顶点v,值fun(v,3,1)=无穷大。在实现中,无穷大可以是大于任何可能答案的任何值。

对于所有内部顶点,让v为当前顶点,uw为其子节点,我们有两个选项:选择或不选择顶点v

假设我们选它。然后我们得到的f(v,b,1)的值是1(拾取的顶点v)加上fun(u,x,q)fun(w,y,r)的最小值,这样xy如果顶点v是黑色的,或者b-1如果是蓝色的,而qr可以是任意的:如果我们选择顶点v,那么边v--uv--w已经被我们的顶点覆盖了。

现在让我们不要拾取顶点v。然后我们得到的f(v,b,0)的值就是fun(u,x,1)fun(w,y,1)的最小值,这样xy=b:如果我们没有选择顶点v,那么边v--uv--w必须被uw覆盖。

 类似资料:
  • 我们有一个边带正权的有向图G(V,E),作为源顶点s,目标点T。此外,最短的s-t路径包括图中的每一个其他顶点。我需要计算s和t之间的交替最短路径距离,以防某些边e∈e被删除。我想设计一个O(e^2logV)算法,它计算图G\e中所有e∈e的最短S-T路径距离。最后的输出应该是一个大小为E的数组,其中edge E的条目应该包含G\E中最短的S-T路径距离。

  • 下面的堆栈溢出问题 我尝试了在语句中使用两个重复的多个构造,但无法为每个起始顶点获得独立的。我也在使用平台,因此它限制了Gremlin的使用,其中不允许使用循环/脚本。所有gremlin查询必须以并由与链接在一起的命令组成 https://docs.aws.amazon.com/neptune/latest/userguide/access-graph-gremlin-differences.ht

  • 我试图理解如何将寻找树的最小顶点覆盖的问题表述为一个动态规划问题,但遇到了一些麻烦。对我来说,涉及深度优先搜索的非动态规划公式具有最直观的意义。从本质上讲,这涉及到对叶节点进行DFS,包括最小大小顶点覆盖中的父节点,并重复到根节点。伪代码是这样的: 我从这里得到的动态规划公式如下: 我想我理解子问题的思想是计算根植于每个顶点的子树的最小大小顶点复盖,包括复盖中的那个顶点,并从复盖中排除那个顶点。我

  • 我有一个无向连通图,我想通过移除顶点而不是边来隔离它的所有顶点,我想保持我移除的顶点数量最小。我知道要实现这一点,我必须每次移除程度最高的顶点,直到图断开。但是我需要为它写一个Java的程序,我不知道如何跟踪程度最高的顶点以及使用哪种数据结构。我得到了以下输入。 :分别表示顶点和边的数量。 :指定边的顶点对 样本输入: 示例输出:(这是需要删除的最小数量的顶点,使顶点隔离) 限制条件:

  • 我怎样才能找到一个有向图中的所有顶点,这样每一个顶点都可以从这个顶点到达呢?现在我只能“发明”O(v^3)ALGO--从每个顶点得到一个DFS/BFS,但我确信,有一个更快的方法来解决这个问题。 谢谢你!

  • 2.1节~2.4节通过缓冲类型几何体BufferGeometry给大家讲解了顶点位置、颜色、法向量、索引数据,本节课给大家引入一个新的threejs几何体APIGeometry。几何体Geometry和缓冲类型几何体BufferGeometry表达的含义相同,只是对象的结构不同,Threejs渲染的时候会先把Geometry转化为BufferGeometry再解析几何体顶点数据进行渲染。 Vect