AP加拿大转机回美国# EB23 - 劳工卡
r*t
1 楼
Problem: given a binary tree, if parent is added to a set, then its chidren
cannot. Find the max number of nodes in such independent set.
我的想法:存在一个最大的set是包括所有的叶子。 所以选所有的叶子,然后从叶子层
开始逆推,若至少一个子点被选,则父点不选;若两个子点都没选(或唯一的子点没选
),则父点选。 这样构造一个set. 而且这是一个最大set。
存在一个最大的set是包括所有的叶子, 因为对任意的最大set,可以分为叶点和叶点
的父以前的点(1),和叶点和叶点的父(2) 两部分。由于一点最多有2个子点,那么选所
有叶点,不选所有叶点的父不会减少(2). 所以保持1, 改2为只选叶点, 也是最大set.
逆推: 因为第一步选所有叶点,不选所有叶点的父。之后,在剩下的树里,叶点上推2
层的点就又相当于新树叶点。递归
如果树只有两层,选所有叶点定可构成最大的set
非cs菜鸟请大牛指点,这个想法对吗?
cannot. Find the max number of nodes in such independent set.
我的想法:存在一个最大的set是包括所有的叶子。 所以选所有的叶子,然后从叶子层
开始逆推,若至少一个子点被选,则父点不选;若两个子点都没选(或唯一的子点没选
),则父点选。 这样构造一个set. 而且这是一个最大set。
存在一个最大的set是包括所有的叶子, 因为对任意的最大set,可以分为叶点和叶点
的父以前的点(1),和叶点和叶点的父(2) 两部分。由于一点最多有2个子点,那么选所
有叶点,不选所有叶点的父不会减少(2). 所以保持1, 改2为只选叶点, 也是最大set.
逆推: 因为第一步选所有叶点,不选所有叶点的父。之后,在剩下的树里,叶点上推2
层的点就又相当于新树叶点。递归
如果树只有两层,选所有叶点定可构成最大的set
非cs菜鸟请大牛指点,这个想法对吗?