#YDRG001F. 有根树上求八维偏序

有根树上求八维偏序

题目描述

你有一棵树,根为 11,有 nn 个结点,第 ii 个结点有八个属性 ai,1,ai,2,,ai,8a_{i,1},a_{i,2},\ldots,a_{i,8}

请计算有多少对 (i,j)(i,j),结点 ii 是结点 jj 的祖先,并对所有 k=1,2,,8k=1,2,\ldots,8ai,k<aj,ka_{i,k}< a_{j,k}

输入格式

输入的第一行有一个整数 nn,表示树的结点数。

之后 nn 行,每行 88 个整数 ai,1,ai,2,,ai,8a_{i,1},a_{i,2},\ldots,a_{i,8},表示八个属性值,中间没有空格隔开

之后一行 (n1)(n-1) 个整数,第 ii 个整数 fai+1fa_{i+1} 表示结点 i+1i+1 的父亲。输入保证可以构成一棵树。

输出格式

一行一个整数,表示符合条件的 (i,j)(i,j) 数量。

样例 #1

样例输入 #1

4
11111111
22332233
13331333
11211112
1 1 2

样例输出 #1

1

提示

【样例解释】

(1,2)(1,2) 符合题意。(1,3)(1,3)k=1,5k=1,5 不符题意;(4,2)(4,2)44 不是 22 的祖先。

【数据范围】

Subtasks 测试点编号 n=n= ai,ka_{i,k}\le 特殊性质
#1 11 291291 55 一条链
#2 232\sim 3 292292
#3 44 199993199993 树随机生成
#4 55 199994199994 22
#5 66 199995199995 33 一条链
#6 787\sim 8 199996199996
#7 9109\sim 10 199997199997 55 周期为44
#8 111311\sim 13 199998199998 一条链
#9 141614\sim 16 199999199999 ai,ka_{i,k} 随机(不均匀,见注释
#10 172017\sim 20 2×1052\times 10^5
  • 对于“一条链”,保证 fai=i1fa_i=i-1
  • 对于“树随机生成”,保证 faifa_i[1,i1][1,i-1] 内均匀随机选取。
  • 对于“周期为 44”,保证 $a_{i,5}=a_{i,1},a_{i,6}=a_{i,2},a_{i,7}=a_{i,3},a_{i,8}=a_{i,4}$。
  • 测试点 141614\sim 16 中,ai,ka_{i,k} 等于 1,2,3,4,51,2,3,4,5 的概率比为 1:2:2:2:11:2:2:2:1,且整个矩阵 aa 任意两个数独立。

提示:你可以通过 nn 的个位判断该测试点类型。

对于全部数据,保证 2n2×105,1ai,k52\le n\le 2\times 10^5,1\le a_{i,k}\le 5fafa 构成一棵树。