繁体   English   中英

最小的数字。 C++程序

[英]the smallest number. Program in c++

  • 点之间有W个点和W-1连接。 每个点都连接在一起。 每个连接的长度为1 计算机程序可以将值12添加到某些点。
  • 如果方案增加了1A ,然后用每点被连接到A (包括点A )将被涂成红色
  • 如果程序添加2 ,则每个点 with 连接到某个点 with 连接到A并且每个连接到A和点A点都将被涂成红色。 我需要绘制所有点。 所以。
  • 我写信给控制台自然数W 在接下来的W-1行中,我用连接点写成对数字。
  • 程序应该在控制台中显示所有添加到点的值的最小总和

例如

我写的

6

1 2

2 3

3 4

3 5

3 6

结果是2

所以,如果我理解正确,你有:
一些点/节点,以及形式为 start->end 的连接。
您想要标记所有节点的最小总和,并且
为每个节点添加 1 并且它的直接子节点被标记
2 为每个节点添加,并标记其下方的整棵树
n 个节点有 n-1 个连接(这意味着它必须是具有根的无循环树)

对?

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM