题面: 树是一种很常见的数据结构。 我们把N个点,N?1条边的连通无向图称为树。 若将某个点作为根,从根开始遍历,则其它的点都有一个前驱,这个树就成为有根树。 对于两个树T1和T2,如果能够把树T1的所有点重新标号,使得树T1和树T2完全相同,那么这两个树是同构的。也就是说,它们具有相同的形态。 现 ...
分类:
其他好文 时间:
2019-10-15 13:41:29
阅读次数:
118
~~介于这道题没大佬发重心的写法,我就来凑个热闹~~ 前置知识 一.树的重心 定义如下:删掉某节点$i$后,若剩余$k$个连通分量,那么定义$d(i)$为这些连通分量中节点数的最大值。所谓重心,就是使得$d(i)$最小的节点$i$。 定理:__重心最多有两个__ 证明:__比较感性的理解__:一个重 ...
分类:
其他好文 时间:
2019-10-04 20:51:33
阅读次数:
99
"题目链接" 有根树的哈希 离散数学中对树哈希的描述在 "这里" 。大家可以看看。 判断有根树是否同构,可以考虑将有根树编码。而编码过程中,要求保留树形态的特征,同时忽略子树顺序的不同。先来看一看这个方法: 不妨令一棵树的编码是个字符串$T$。 对于一个点$u$,先求出$u$所有$son_u$的编码 ...
分类:
其他好文 时间:
2019-09-30 16:56:42
阅读次数:
107
[TOC] 更新、更全的《数据结构与算法》的更新网站,更有python、go、人工智能教学等着你: 一、题意理解 给定两棵树T1和T2。如果T1可以通过若干次左右孩子互换就变成T2,则我们称两棵树是“同构的”。现给定两棵树,请你判断它们是否是同构的。 输入格式:输入给出2棵二叉树的信息: 先在一行中 ...
分类:
编程语言 时间:
2019-09-14 14:19:34
阅读次数:
142
[TOC] 更新、更全的《数据结构与算法》的更新网站,更有python、go、人工智能教学等着你:输入格式:输入给出2棵二叉树的信息: 先在一行中给出该树的结点树,随后N行 第i行对应编号第i个结点,给出该结点中存储的字母、其左孩子结点的编号、右孩子结点的编号 如果孩子结点为空,则在相应位置给出“ ...
分类:
编程语言 时间:
2019-09-14 13:31:36
阅读次数:
86
给定两棵树T1和T2。如果T1可以通过若干次左右孩子互换就变成T2,则我们称两棵树是“同构”的。例如图1给出的两棵树就是同构的,因为我们把其中一棵树的结点A、B、G的左右孩子互换后,就得到另外一棵树。而图2就不是同构的。 图1 图2 现给定两棵树,请你判断它们是否是同构的。 输入格式: 输入给出2棵 ...
分类:
其他好文 时间:
2019-05-03 18:13:46
阅读次数:
117
一道比较好的 树Hash 的题目,提供一种不一样的Hash方法。 首先无根树的 同构 判断一般的做法只有树Hash,所以不会的同学可以做了 "Luogu P5043 【模板】树同构([BJOI2015]树的同构)" 再来。 首先我们直接考虑一种朴素的想法,暴力求出$A$树中以每一个点为根时的Hash ...
分类:
Web程序 时间:
2019-02-01 23:50:07
阅读次数:
308
题目描述 树是一种很常见的数据结构。 我们把N个点,N-1条边的连通无向图称为树。 若将某个点作为根,从根开始遍历,则其它的点都有一个前驱,这个树就成为有根树。 对于两个树T1和T2,如果能够把树T1的所有点重新标号,使得树T1和树T2完全相 同,那么这两个树是同构的。也就是说,它们具有相同的形态。 ...
分类:
其他好文 时间:
2019-01-01 11:43:20
阅读次数:
109
给定两棵树T1和T2。如果T1可以通过若干次左右孩子互换就变成T2,则我们称两棵树是“同构”的。例如图1给出的两棵树就是同构的,因为我们把其中一棵树的结点A、B、G的左右孩子互换后,就得到另外一棵树。而图2就不是同构的。 图1 图2 现给定两棵树,请你判断它们是否是同构的。 输入格式: 输入给出2棵 ...
分类:
其他好文 时间:
2018-12-21 13:14:53
阅读次数:
270
题解: 树的同构的判定 有根树从根开始进行树hash 先把儿子的f进行排序 $f[i]=\sum_{j=1}^{k} { f[j]*prime[j]} $ 无根树先找到重心再作为根 因为重心最多只有两个,复杂度仍旧O(n) ...
分类:
其他好文 时间:
2018-12-10 13:57:25
阅读次数:
171