最小的数字。用c ++编写

时间:2015-11-15 23:11:12

标签: c++

  • 点之间有W个点和W-1个连接点。每个点都连在一起。每个连接的长度为1。 计算机程序可以为某些点添加值12
  • 如果程序将1添加到点A,那么与A(包括点A)相关联的每个点都将被涂成红色
  • 如果程序添加了2,则每个与某个点连接的点都与A相关联,并且每个与A和点A相关的点都将被绘制红色。 我需要画出所有要点。 如此。
  • 我写入控制台自然数W。在接下来的W-1行中,我写了一对带有连接点的数字。
  • 程序schould告诉我在控制台中添加到点的所有值的最小总和

例如

我写

6

1 2

2 3

3 4

3 5

3 6

结果为2

1 个答案:

答案 0 :(得分:0)

所以,如果我明白这一点,你就有:
一些点/节点和表单中的连接start-> end 您希望标记所有节点的最小总和,以及
为每个节点添加1,并且它的直接子节点标记为
为每个节点添加2,并在其下面的整个树标记为
n个节点有n-1个连接(这意味着它必须是一个带有根的无循环树)

右?

首先找到根:不是任何连接结束的节点,即。你的例子中有1个 然后检查是否有任何其他连接没有root作为开始。
如果是,答案是2,否则1.没有其他可能的值 时间复杂度O(n)。