关于这题题解之外的另一种可能的思路
查看原帖
关于这题题解之外的另一种可能的思路
9315
zhyh楼主2021/3/8 22:55

以下内容涉及对本题解法的略微剧透...若没做过请谨慎阅读

然而对于这个思路,我不知道怎么接着做

首先我们知道这题处理后得到的问题大意:对于一棵树,对其所有节点进行排序,满足对于任意节点,其父节点必在其前面;此时代价等于 每个节点的编号减去其父节点的编号 之和。求代价的最小值。

我们考虑把儿子节点“减去其父节点编号”的这部分归为父节点的贡献,那么对于每个节点就都有一个权值,等于 “1 - 其儿子个数”,那么代价也可以表示成 每个节点编号乘其权值 之和。
也就是说,给出一个带点权的树,在上述排序规则下,代价等于 每个节点编号乘其权值 之和。

一开始我想在考虑 父在子前 的限制下直接排序,然而这样的 cmp 函数不满足 Strict Weak Ordering ,结果 gg 。
然后又想把当前可拓展的节点放入一个按权值排序的堆,结果也是假的。
然后我不会了,个人感觉可以做,但不知道怎么做qwq。

求教...

2021/3/8 22:55
加载中...