【问题标题】:Is there a type-o in this HackerRank challenge?在这个 HackerRank 挑战中是否有 type-o?
【发布时间】:2016-08-07 05:13:12
【问题描述】:

我在这个 HackerRank 问题上花费了很多时间,但我对提示的含义感到困惑。它说

给你一棵树(一个没有环的简单连通图)。这 树的节点编号为从到 N。 找到可以从树中删除的最大边数,以获得森林,使得森林的每个连接组件都包含 偶数个顶点。

https://www.hackerrank.com/challenges/even-tree

它有一个显示示例的图表。

我很困惑为什么会这样说

求最大边数

不是说最低吗?

因为如果我试图最大化要从中删除的边数

      1
   /  |  \ 
  3   6   2
 /    |   / \
4     8  7   5
     / \
    9   10

为了让它成为所有偶数的森林,然后我会继续从顶部切断它,直到我到达

      8  
     / 
    9   

这是一个具有偶数计数的单一森林。

我到底错过了什么?有人可以帮忙澄清一下吗?

【问题讨论】:

  • 不要忽略只有一个顶点的组件。使用删除边缘的方式会产生一个森林,其中包含一个具有偶数顶点 (8-9) 的连接组件和八个具有奇数顶点 (1、2、3、4、5、6、7、10) 的连接组件)。

标签: algorithm data-structures graph graph-theory


【解决方案1】:

找出可以从树中移除的最大边数以获得森林,使得森林的每个连接组件都包含偶数个顶点

请注意,当您从树中删除一条边时,您会将连接组件的数量增加一。
因此,如果您删除 m 边,则森林的连接组件数为 m+1

这个问题现在要求您找到最大的 m,这样所有连接的组件都将具有偶数个顶点。


如果它是最小边数,答案将是微不足道的 (0),即不要删除任何边!


提示

为了解决这个问题,对于每个顶点v,维护以v 为根的子树中的顶点数。如果这是偶数,那么您可以将其作为不同的连接组件。

【讨论】:

    猜你喜欢
    • 2017-06-23
    • 2020-06-07
    • 2017-03-22
    • 2022-07-24
    • 2022-07-12
    • 2016-02-14
    • 2018-02-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多