Related
In following contests:
曾经有一个叫做塔子哥的年轻人,他是一个热衷于研究二叉树的数学家。他认为,一棵树只有当它的红色节点数量大于蓝色节点数量时才是好树。他的定义引起了人们的热议,有些人同意他的定义,有些人则持不同意见。但无论怎样,这个定义还是被广泛地接受了。
有一天,塔子哥发现了一棵好树,但他觉得它不够完美。于是他开始思考,如果能够将这棵好树分成两个好树,那它就更加完美了。
第一遍dfs求解这棵树上每个子树的大小sz[i]以及每个子树中红色结点的个数r[i] . 我们假设1为根节点
第二遍dfs,枚举每条边(u,v),考虑将这条边删掉之后,子树的红色结点个数为r[v] , 蓝色结点个数就是sz[v]−r[v]. 另一个颗树的红色结点个数就是r[1]−r[v] . 蓝色结点个数就是sz[1]−r[1]−(sz[v]−r[v])
判断一下是不是都 红色 > 蓝色即可
In following contests:
扫码备注加群即可,期待您的到来~