31

发布时间 2023-12-06 21:44:14作者: 最爱丁珰

其实感觉蓝书上讲的不是很好

我们假设经历了一些时刻了,每个节点里面现在包含若干个有先后顺序小节点,代表着这些小节点的染色顺序

这题的关键性质其实是,任意时刻,等效权值最大的点一定是会在其父节点里面的小节点依次染完后,立马把里面的小节点按照顺序染完

证明利用邻项交换法

假设当前等效权值最大的点是\(\sum_{i=1}^{m} b_i\),他的父节点是\(\sum_{i=1}^{n}a_i\),而最优序列在\(a\)\(b\)中间夹了一个\(c\),交换后,设\(a\)之前一共染了\(T\)个点,则为\(\sum_{i=1}^{n}a_i \times (T+i)+\sum_{i=1}^{m} b_i \times (T+n+i) + \sum_{i=1}^{p} c_i \times (T+n+m+i)\),而交换前为\(\sum_{i=1}^{n}a_i \times (T+i)+\sum_{i=1}^{p} c_i \times (T+n+i) + \sum_{i=1}^{m} b_i \times (T+n+p+i)\),两者相减并除以\(mp\)得到\(\frac{\sum_{i=1}^{p} c_i}{p}-\frac{\sum_{i=1}^{m} b_i}{m}<0\),即交换后更优,所以最优序列一定是两者连着染的,就可以一直合并了