AT_tupc2022_m.Fractal Tree Isomorphism

通过率:0%

AC君温馨提醒

该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

对于一棵有根树 SS,定义 f(S)f(S) 为如下操作后的有根树:

  • 用树 SS 自身替换 SS 的所有叶子节点。

对于有根树 SS,定义一组无穷序列的树 (S1,S2,… )(S_1, S_2, \dots),具体为:

  • S1:=SS_1 := S
  • Si:=f(Si−1)(i>1)S_i := f(S_{i-1}) \quad (i > 1)

定义无穷树 S∞:=lim⁡n→∞SnS_{\infty}:= \displaystyle\lim_{n\to\infty} S_n,称其为由 SS 导出的分形树(fractal tree)。


给定 KK 棵有根树 T1,T2,…,TKT_1, T_2, \dots, T_K。每棵树 Ti (i=1,2,…,K)T_i\,(i=1,2,\dots,K) 满足以下条件:

  • 顶点数为 Ni≥2N_i \geq 2
  • 顶点依次编号为 1,2,…,Ni1,2,\dots,N_i
  • 根为编号 11 的顶点
  • 对于 j=2,3,…,Nij=2,3,\dots,N_i,顶点 jj 的父节点为 pi,jp_{i,j}

请对于每一对 (i,j) (i,j=1,2,…,K)(i,j) \, (i,j=1,2,\dots,K),判断由 Ti,TjT_i,T_j 各自导出的分形树 (Ti)∞(T_i)_\infty 和 (Tj)∞(T_j)_\infty 是否同构。

分形树的同构定义如下:

记分形树 TT 的顶点集合为 V(T)V(T),边集合为 E(T)E(T)。若存在一个双射 φ:V(S)→V(T)\varphi:V(S)\to V(T),使得以下两个条件成立,则称两棵分形树 S,TS,T 同构:

  • {u,v}∈E(S)  ⟺  {φ(u),φ(v)}∈E(T)\{u,v\}\in E(S) \iff \{\varphi(u),\varphi(v)\}\in E(T)
  • S,TS,T 的根节点分别为 rS,rTr_S, r_T 时,φ(rS)=rT\varphi(r_S)=r_T

输入格式

输入格式如下,经标准输入给出:

K N1 p1,2 p1,3 … p1,N1 N2 p2,2 p2,3 … p2,N2 ⋮ NK pK,2 pK,3 … pK,NKK \ N_1 \ p_{1,2} \ p_{1,3} \ \dots \ p_{1,N_1} \ N_2 \ p_{2,2} \ p_{2,3} \ \dots \ p_{2,N_2} \ \vdots\ N_K \ p_{K,2} \ p_{K,3} \ \dots \ p_{K,N_K}

输出格式

输出 KK 行。第 ii 行输出长度为 KK 的仅由 0 或 1 组成的字符串。

第 ii 行的第 jj 个字符,如果 (Ti)∞(T_i)_\infty 和 (Tj)∞(T_j)_\infty 同构则为 1,否则为 0。

输入输出样例

  • 输入#1

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

    输出#1

    1100
    1100
    0011
    0011

说明/提示

样例解释 1

给定的树如下所示。

对这些树进行一次操作后的结果如下所示。

数据范围

  • 2≤K≤10002 \leq K \leq 1000
  • 2≤Ni≤5×104(1≤i≤K)2 \leq N_i \leq 5\times 10^4 \quad (1\leq i\leq K)
  • ∑i=1KNi≤105\displaystyle\sum_{i=1}^K N_i \leq 10^5
  • 1≤pi,j<j(1≤i≤K, 2≤j≤Ni)1 \leq p_{i,j} < j \quad (1 \leq i \leq K,\,2\leq j \leq N_i)
  • 所有输入均为整数。

由 ChatGPT 5 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页