logo AlgoBeat OnlineJudge
登录 注册

#214032. [ICPC 2023 Nanjing R] 红黑树

内存限制:1024 MiB 时间限制:2000 ms 标准输入输出
题目类型:VJudge(洛谷) 评测方式:VJudge
上传者: 匿名

题目描述

有一棵 个节点的有根树,节点编号从 ,其中节点 为根。每个节点都有一个颜色, 要么是红色,要么是黑色。

称一个节点是好的,若每一条以该节点为起点,以该节点任意一个后代叶子节点为终点的简单路径中,都包含相同数量的黑色节点。称一棵树是完美的,若树中每个节点都是好的。

表示以节点 为根的子树。对于每个 ,回答以下询问:如果您可以任意选择一些节点并改变它们的颜色(也就是说,把红色节点改成黑色,以及把黑色节点改成红色),至少需要选择几个节点才能让 变得完美。

请回忆:简单路径不会多次经过同一条边。

同时请回忆:以节点 为根的子树是一棵由节点 所有后代组成的有根树,并以节点 为根。请注意,每个节点都是它自己的后代。

输入格式

有多组测试数据。第一行输入一个整数 表示测试数据组数,对于每组测试数据:

第一行输入一个整数 )表示树中节点的数量。

第二行输入一个长度为 的字符串 )。若 则节点 是红色节点;若 则节点 是黑色节点。

第三行输入 个整数 ),其中 是节点 的父节点。

保证所有数据 之和不超过

输出格式

每组数据输出一行 个由单个空格分隔的整数,其中第 个整数表示至少需要选择几个节点才能让 变得完美。

请不要在行末输出多余空格,否则您的答案可能会被认为是错误的!

样例

样例输入 1

2
9
101011110
1 1 3 3 3 6 2 2
4
1011
1 1 3

样例输出 1

4 1 2 0 0 0 0 0 0
2 0 0 0

数据范围与提示

:::align{center} :::

我们展示第一组样例数据。

为了让 变得完美,我们可以改变节点 的颜色。改变之后,所有从节点 到后代叶子节点的路径均包含 个黑色节点,所有从节点 到后代叶子节点的路径均包含 个黑色节点,所有从节点 到后代叶子节点的路径均包含 个黑色节点。由于节点 都只有一个后代叶子节点,所以它们一直都是好的。

为了让 变得完美,我们可以改变节点 的颜色。改变之后,所有从节点 到后代叶子节点的路径均包含 个黑色节点。由于节点 都只有一个后代叶子节点,所以它们一直都是好的。