#9860. 【模板】树哈希

【模板】树哈希

题目描述

给定一棵以点 11 为根的树,你需要输出这棵树中最多能选出多少个互不同构的子树。

两棵有根树 T1T_1T2T_2 同构当且仅当他们的大小相等,且存在一个顶点排列 σ\sigma 使得在 T1T_1iijj 的祖先当且仅当在 T2T_2σ(i)\sigma(i)σ(j)\sigma(j) 的祖先。

输入格式

第一行一个正整数 nn,表示树的点数。

接下来 n1n-1 行给出树边。每行两个正整数 a,ba,b,表示树上有一条连接点 aa 和点 bb 的边。

输出格式

一行一个正整数,表示最多能选出的互不同构的子树个数。

10
1 2
1 3
2 4
2 5
3 6
3 7
3 8
8 9
8 10
4

样例分析

一种最优的选法是选择 11 号点、22 号点、33 号点、44 号点的子树。

数据范围与提示

对于 100%100\% 的数据,1n1061 \le n \le 10^6