题意简述
给定一颗无根树,每个点有颜色,请确定一个点,使得以这个点为根,则所有子树中都是一个颜色。为防歧义,良心插图。
如图:
思路
设 c c c为满足链接的两个点颜色不一样的边(简称“异色边”)的个数。找到一个点,使得这个点连出去的异色边数量 = = C ==C ==C,那么这个点就是我们要找的根。否则就没有这样的根。
具体思路
这个题还是很巧妙的,如果第一次做完全不会想到。别急,慢慢分析。
如右图,设我们要选的点是点 k k k。 c c c的定义同“思路”中的定义。那么,我们会发现,由于子树中的颜色都是一样的,所以异色边仅有在 k k k和儿子的连边中出现。所以,如果有一个满足条件的 k k k,那么这个 k k