这道题确实很有意思,Category写个图论我想了半天网络流,最后还是从暴力入手,搜索变记忆化搜索来解决。
首先对于暴力的情况,我们从根节点开始层次遍历,每个点有选和不选两种状态,根据父节点的状态更新获得的最大值,对于6000个节点的树,我猜dfs要死。
对上面这种情况,我们重复考虑了很多次相同的状况,而且我们发现,当父节点b对应的所有节点a_i对应的两个值-选带来收益a1i,不选带来收益a2i确定之后,他的父节点b所带来的收益也就唯一确定了,如果选了b,那么收益就是b的值,否则的话,我们只需要一次遍历a这一层,从每个a1i,a2i中选最大的加到获得的...