Module: 哈希


Problem

8 /8


掩体

Theory Click to read/hide

还有几种方法可以有效地散列有根树。 
其中一种方法安排如下:
我们按照深度遍历的顺序递归地处理顶点。我们假设单个顶点的哈希值等于 p。对于有孩子的顶点,我们首先为他们运行算法,然后通过孩子我们将计算当前子树的散列。为此,将子树的哈希值视为一个数字序列,并根据该序列计算哈希值。这将是当前子树的散列。
如果孩子的顺序对我们不重要,那么在计算哈希之前,我们从孩子子树中排序哈希序列,然后从排序后的序列计算哈希。

通过这种方式,您可以检查树的同构性 - 只需计算哈希而不对孩子排序(即,每次对孩子的哈希进行排序)。如果根的哈希匹配,则树是同构的,否则不是。

对于无根树,一切都以类似的方式发生,但质心必须作为根。或者,如果有两个质心,则考虑一对哈希。

Problem

Petya 和 Vasya 热情地扮演间谍。今天他们正在计划他们要去的地方 
找到了他们的秘密地堡和总部。 

到目前为止,Petya 和 Vasya 已经决定他们将恰好需要 n 个掩体,为了保密,这些掩体将从 1 到 n 编号。 
其中一些将通过双向隧道连接,为了可靠性和保密性,隧道将从任何掩体到任何单向通道。
Petya 和 Vasya 甚至决定了哪些掩体将通过隧道连接,但他们无法选择哪个将成为总部。 
男孩们想选择它,把剩下的地堡分给他们,让他们得到相同数量的地堡。正好有两条隧道通往总部:一条来自瓦夏的地堡,另一条来自佩蒂亚的地堡。 
                                                                                   
疲惫的 Petya 去了他家,早上 Vasya 给他看了一张平面图,上面用点标记了掩体,用线段标记了隧道。 
此外,瓦夏选择总部的方式是,他绘制的平面图关于通过与总部对应的点的直线对称。
 
尽管彼佳几乎是立刻就让瓦夏知道他犯了一个错误,没有画出一半的掩体,但他想知道是否可以选择一个总部并画出这样一个对称的平面图。

输入:
输入文件的第一行包含一个整数 n (1 <= n <= 105) - bin 的数量。 
接下来的 n - 1 行包含两个整数 ui 和 vi (1 <= ui, vi <= n, ui ≠ vi) - 第i条隧道连接的掩体数量。 
保证任意两个掩体之间只有一条路径。

输出:
如果可以选择总部并绘制这样的计划,在输出文件中打印“是”,否则打印“否”如果那不可能。

示例:
  <正文>
输入 输出
2
1 2
没有
3
1 2
2 3