这里主要讲一下蓝书法一的等效方法的正确性。假设我们已经知道了最终的答案的树的样子,设为\(T\),设高度为\(h\),则答案为\(f[h,(1<<n)-1]\);设高度为\(h\)的节点集合为\(S\),那么我们可以知道,在\(T\)中删掉\(S\)中的节点得到的新树的\(T_1\)的代价就等于\(f[h-1,(1<<n)-1-S]\),如若不然,就说明\(T_1\)的代价严格大于\(f[h-1,(1<<n)-1-S]\),此时向\(f[h-1,(1<<n)-1-S]\)所代表的树加上\(S\)(并且拓展的深度代价视为\(h-1\))得到树\(T_2\),可知\(T_2<T\),这就与\(T\)是最优解矛盾,所以\(T_1\)的代价就等于\(f[h-1,(1<<n)-1-S]\),于是可以直接按照深度代价为\(i-1\)拓展,不会计算错误;同理可以证明,在\(T_1\)中删掉所有高度为\(h-1\)的节点(设为\(S_1\))后得到的树\(T_3\)的代价仍然等于\(f[h-2,(1<<n)-1-S-S_1]\),依次类推,最终得到的答案就不会计算错误
宝藏
最新推荐文章于 2024-10-06 20:16:20 发布