如何解决:子树计数:在这个问题中,你得到一个树有n个节点和一组查询.每个查询要求你计算在子树中的节点数,根源于给定的节点.你需要有效地回答所有查询.
您可以使用一种技术,即"预处理",以有效地解决这个问题.首先,使用深度搜索 (DFS) 穿越将原始树转换为数组.这将允许您将树表示为一个数组,每个索引代表一个节点,而存储在该索引中的值代表该节点的子树中的节点数量.接下来,对于每个查询,找到节点的索引并使用预处理的数组来返回在该节点根基的子树中的节点数量.您可以使用给定节点开始的DFS穿越并加上访问节点数量.总体来说,这个解决方案将具有Onlogn) 为预处理和Onlogn) 为每个查询的时间复杂性.