#P17231. [2025年南开中学集训]随猫与计数

    ID: 16389 传统题 4000ms 1024MiB 尝试: 1 已通过: 1 难度: 8 上传者: 标签>CF2500树形DP动态规划组合数学数学算法基础模拟

[2025年南开中学集训]随猫与计数

随猫与计数

题目描述

给定一棵以 11 为根的树,对于每对 (u,v)(u,v),求下面问题的答案:

称长度不超过 nn、值域为 [1,n][1,n] 的序列 pp 是好的当且仅当:

  • pp 中的元素两两不同;
  • uuvv 都在序列 pp 中;
  • x,yx,y 同时在序列 pp 中,且 xxyy 的祖先,则 xxyy 的前面。

uuvv 在所有好的序列中的位置差的和,对 109+710^9+7 取模。

输入格式

第一行一个整数 nn,表示树的大小。

第二行 n1n-1 个整数,第 ii 个整数 pi+1p_{i+1} 表示 i+1i+1 的父亲。

输出格式

输出 nn 行每行 nn 个整数,第 ii 行第 jj 列的整数表示 u=i,v=ju=i,v=j 时的答案。

样例 1 输入

3
1 1

样例 1 输出

0 4 4
4 0 4
4 4 0

样例 2 输入

5
1 1 2 2

样例 2 输出

0 26 54 59 59
26 0 48 46 46
54 48 0 54 54
59 46 54 0 44
59 46 54 44 0

数据范围

对于所有数据,1n1501\le n\le1501pii11\le p_i\le i-1

评分方式

一个测试点的分数为:

  • 若你输出的答案全部正确,并且输出格式正确,获得 100100 分。
  • 否则若你输出的第一行答案正确,并且输出格式正确,获得 2020 分。
  • 否则获得 00 分。

对于一个子任务,你在这个子任务的得分为它以及它依赖的子任务中的测试点得分的最小值,乘以该子任务分值,再乘以 1100\frac{1}{100}

子任务

本题采用捆绑测试,并开启所有合理的子任务依赖。

子任务编号 nn\le 特殊性质 分值
0 11 1
1 88 4
2 1515 5
3 2020
4 3030
5 4040
6 5050 10
7 6060 5
8 8080
9 100100 10
10 120120 5
11 150150 A
12 B
13 C 10
14 20

特殊性质 A:pi=i1p_i=i-1

特殊性质 B:pi=1p_i=1

特殊性质 C:pi=i/2p_i=\lfloor i/2\rfloor