题目大意:给一棵树,树上每个节点都有颜色,现在要求将某一个点变成根,使得每个子树上的所有点颜色相同,(根的颜色可不管,根的子树与子树间颜色可不同,但同一个 子树颜色必须相同)问能否找到这样的点,若有则输出这个点。
解题思路1:换根,就想到了BZOJ3306,百度了一份代码直接在这上面改。
将每一个点都遍历一遍把它变作根,然后遍历它的子树的最大值以及最小值,若两者相等则是符合要求。
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
using namespace std;
int read()
{
int x=0,f=1;
char ch=get