小红拿到了一棵有根树。根节点为1号节点。 所谓树,指没有回路的无向连通图。 现在小红想给一部分点染成红色。之后她有 次询问,每次询问某点的子树红色节点的个数。-笔试面试资料

这是qklbishe.com第19775 篇笔试面试资料
提供答案分析,通过本文《小红拿到了一棵有根树。根节点为1号节点。
所谓树,指没有回路的无向连通图。
现在小红想给一部分点染成红色。之后她有 次询问,每次询问某点的子树红色节点的个数。-笔试面试资料》可以理解其中的代码原理,这是一篇很好的求职学习资料
本站提供程序员计算机面试经验学习,笔试经验,包括字节跳动/头条,腾讯,阿里,美团,滴滴出行,网易,百度,京东,小米,华为,微软等互联网大厂真题学习背诵。

答案:
小红拿到了一棵有根树。根节点为1号节点。
所谓树,指没有回路的无向连通图。
现在小红想给一部分点染成红色。之后她有 小红拿到了一棵有根树。根节点为1号节点。   所谓树,指没有回路的无向连通图。   现在小红想给一部分点染成红色。之后她有 次询问,每次询问某点的子树红色节点的个数。次询问,每次询问某点的子树红色节点的个数。

Java

小红拿到了一棵有根树。根节点为1号节点。   所谓树,指没有回路的无向连通图。   现在小红想给一部分点染成红色。之后她有 次询问,每次询问某点的子树红色节点的个数。 yox

贴个java代码
import java.util.*;  public class Main {     public static void main(String[] args) {         Scanner sc = new Scanner(System.in);         int n = sc.nextInt();         // 用一个数组存每个节点的父亲节点         int[] tree = new int[n+1];         // 存总节点数         tree[0] = n;         // 根节点         tree[1] = -1;         // 构建树         for (int i = 2; i <= n; i++) {             tree[i] = sc.nextInt();         }                  // 读取节点颜色标记         char[] arr = sc.next().toCharArray();                  // dp[i]表示节点i的子树的红色节点个数         int[] dp = new int[n+1];                  // 先记录所有的红色节点         for (int i = 1; i <= n; i++) {             if (arr[i-1] == 'R') {                 dp[i] = 1;             }         }         // 再自底向上将子树的有色节点个数累加给父亲节点         for (int i = n; i > 1; i--) {             dp[tree[i]] += dp[i];         }                  // 读取查询次数         int q = sc.nextInt();         while(q-- > 0) {             int x = sc.nextInt();             System.out.println(dp[x]);         }     } }

2022-01-04 19:57:14 回复(0)

文章部分来自互联网,侵权联系删除
www.qklbishe.com

区块链毕设网(www.qklbishe.com)全网最靠谱的原创区块链毕设代做网站
部分资料来自网络,侵权联系删除!
资源收费仅为搬运整理打赏费用,用户自愿支付 !
qklbishe.com区块链毕设代做网专注|以太坊fabric-计算机|java|毕业设计|代做平台 » 小红拿到了一棵有根树。根节点为1号节点。 所谓树,指没有回路的无向连通图。 现在小红想给一部分点染成红色。之后她有 次询问,每次询问某点的子树红色节点的个数。-笔试面试资料

提供最优质的资源集合

立即查看 了解详情