日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【竞赛题解】Codeforces Round #715 (Div. 2) C

發(fā)布時間:2023/12/1 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【竞赛题解】Codeforces Round #715 (Div. 2) C 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

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é)果

#include<bits/stdc++.h> #define debug1(x) cout<<#x<<":"<<x<<endl typedef long long ll; typedef unsigned long long ull; const int N = 2010; const int MOD = 10000; using namespace std; int a[N]; ll dp[N][N]; int main() {int n;cin>>n;for(int i = 1; i <= n; i++) cin>>a[i];sort(a+1, a+n+1);dp[0][0] = a[n] - a[1];for(int j = 1; j < n; j++) dp[0][j] = dp[0][j-1] + (a[n-j] - a[1]);for(int i = 1; i < n; i++) dp[i][0] = dp[i-1][0] + (a[n] - a[1+i]);ll ex;for(int i = 1; i < n; i++){for(int j = 1; i + j < n; j++){ex = a[n-j] - a[1+i];dp[i][j] = min(dp[i-1][j], dp[i][j-1]) + ex;}}ll ans = dp[0][n-1];for(int i = 0; i < n; i++){ans = min(ans, dp[i][n-1-i]);}cout<<ans<<"\n";return 0; }

總結(jié)

以上是生活随笔為你收集整理的【竞赛题解】Codeforces Round #715 (Div. 2) C的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。