牛客多校3 - Two Matchings(dp)
題目鏈接:點擊查看
題目大意:給出 n 個點( n 為偶數(shù) ),題目需要求出兩個完全沒有交集的匹配 q 和 p ,一方面使得 n 個點兩兩互相匹配,另一方面使得匹配的權(quán)值和最小
題目分析:一道 dp 題,比賽時貪心WA了一下午,就比較自閉了
因為 n 是偶數(shù),所以可以考慮將 n 個數(shù)分配到不同的長度為偶數(shù)的環(huán)中,對于排列 q 和排列 p,只需要在偶環(huán)中交換一下位置就好了
但這個偶環(huán)的長度必須要大于 2 ,因為如果長度為 2 的話,那么無法保證兩個匹配 q 和 p 不存在交集
還有一個需要觀察或者猜出的結(jié)論就是,任意長度大于等于 8 的偶環(huán),都可以分解為長度為 4 和長度為 6 的偶環(huán),且總邊權(quán)更小
那么現(xiàn)在就對于長度為 4 和長度為 6 的偶環(huán)計算一下貪心可以獲得的最小邊權(quán)之和是多少吧,直接上圖:
?
?
這樣總結(jié)一下,對于長度為 x 的偶環(huán)( x = 4 或 x = 6 ),貪心可以得到的最小權(quán)值和為 2 * ( a[ i ] - a[ i - x ] ) ,注意 a 數(shù)組是排序后的數(shù)組
這樣我們直接進(jìn)行動態(tài)規(guī)劃就好了
代碼:
?
?
總結(jié)
以上是生活随笔為你收集整理的牛客多校3 - Two Matchings(dp)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: HDU - 6749 Mosquito(
- 下一篇: 牛客多校4 - Basic Gcd Pr