【竞赛题解】Codeforces Round #715 (Div. 2) C
C. The Sports Festival
題意:對于給定的整型數(shù)組aaa,每次選擇其中一個元素aia_iai?(不能重復選擇同一元素),每次計算已選擇的元素的極差(最大元素減最小元素的差),輸出最后極差和的最小可能值
思路:(賽后補題)采用二維動態(tài)規(guī)劃,最后一個極差一定是整個數(shù)組的極差(amax?amina_{max} - a_{min}amax??amin?),而前一個極差無非有兩種情況:
- 剔除最小的元素,即整個數(shù)組中最大減去最次小
- 剔除最大的元素,即整個數(shù)組中最次大減去最小
若不剔除兩邊的元素,而是中間的元素的話,極差則與最后一個極差一致,而最后一個極差一定是最大的極差,顯然不符合最小化的要求
dp[i][j]dp[i][j]dp[i][j]表示剔除iii個最小元素和jjj個最大元素,dp[0][0]dp[0][0]dp[0][0]則表示最后一個極差,將數(shù)組升序排序后,由上面的討論可得到狀態(tài)轉(zhuǎn)移方程:
dp[i][j]=min(dp[i?1][j],d[i][j?1])+(an?1?j?ai)dp[i][j] = min(dp[i-1][j], d[i][j - 1]) + (a_{n-1-j}-a_i)dp[i][j]=min(dp[i?1][j],d[i][j?1])+(an?1?j??ai?)
當i+j=n?1i+j = n - 1i+j=n?1時即說明已完成,此時n?1?j=in-1-j = in?1?j=i極差的減數(shù)與被減數(shù)指向同一元素,即最初只選擇了一個元素時的情況
最后的答案等于,dpdpdp數(shù)組中滿足i+j=n?1i+j = n - 1i+j=n?1的最小元素值,顯然有nnn個元素滿足條件,每個元素即代表了最初選擇數(shù)組中每個aia_iai?所能得到的最小結(jié)果
總結(jié)
以上是生活随笔為你收集整理的【竞赛题解】Codeforces Round #715 (Div. 2) C的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【竞赛题解】第22次CCF计算机软件能力
- 下一篇: 【桶】220.存在重复元素 III 【L