以下内容涉及对本题解法的略微剧透...若没做过请谨慎阅读
然而对于这个思路,我不知道怎么接着做
首先我们知道这题处理后得到的问题大意:对于一棵树,对其所有节点进行排序,满足对于任意节点,其父节点必在其前面;此时代价等于 每个节点的编号减去其父节点的编号 之和。求代价的最小值。
我们考虑把儿子节点“减去其父节点编号”的这部分归为父节点的贡献,那么对于每个节点就都有一个权值,等于 “1 - 其儿子个数”,那么代价也可以表示成 每个节点编号乘其权值 之和。
也就是说,给出一个带点权的树,在上述排序规则下,代价等于 每个节点编号乘其权值 之和。
一开始我想在考虑 父在子前 的限制下直接排序,然而这样的 cmp 函数不满足 Strict Weak Ordering
,结果 gg 。
然后又想把当前可拓展的节点放入一个按权值排序的堆,结果也是假的。
然后我不会了,个人感觉可以做,但不知道怎么做qwq。
求教...