#P884. 彩色树(二)

彩色树(二)

题目描述

给定一棵 nn 个点的树,11 号点为根。每个点有一个颜色,点 ii 的颜色为 cic_i、父结点为 pip_i

11 号点外,请你求出,对于每个点,有多少条起点和终点颜色相同路径经过了该点到他父亲的边。(只考虑路径起点和终点即可,对路径上经过的其他点的颜色不做要求)

输入格式

  • 第一行:单个整数 nn
  • 第二行:nn 个整数,表示 c1,c2,,cnc_1,c_2,\dots,c_n
  • 第三行:n1n-1 个整数,表示 p2,p3,,pnp_2,p_3,\dots,p_n,其中 pip_i 表示结点 ii 的父亲,保证 pi<ip_i<i

输出格式

输出共一行,n1n-1个整数用空格隔开,其中对于每 ii 个数字,表示有多少条起点和终点相同颜色路径经过了 i+1i+1 点到他父亲的边。

6
1 1 2 2 1 1
1 2 1 2 4
5 1 4 3 3

样例解释 1

以1号点,2号点之间的边为例,共有5条起点终点颜色相同的路径经过他; 分别是(1,2),(1,5),(2,6),(5,6),(3,4)

数据范围

  • 对于 30%30\% 的数据,满足 2n1032 \leq n \leq 10^3
  • 对于 60%60\% 的数据,满足 2n1042 \leq n \leq 10^4
  • 对于 100%100\% 的数据,满足 2n1052 \leq n \leq 10^51cin1\leq c_i \le n