寶藏

最爱丁珰發表於2024-09-03

這裡主要講一下藍書法一的等效方法的正確性。假設我們已經知道了最終的答案的樹的樣子,設為\(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]\),依次類推,最終得到的答案就不會計算錯誤

相關文章