3 条题解
-
1
WSSB#include<iostream> #include<algorithm> #include<cstring> using namespace std; int V, P, dp[3005][305], a[3005], w[3005][3005]; int main(){ cin >> V >> P; for(int i = 1; i <= V; i++) cin >> a[i]; sort(a+1, a+V+1); for(int l=1; l <= V; l++) { w[l][l] = 0; for(int r = l+1; r <= V; r++) { w[l][r] = w[l][r-1] + a[r] - a [(l+r)/2]; } } memset(dp, 0x3f, sizeof(dp)); dp[0][0] = 0; for(int i = 1; i <= V; i++) for(int j = 1; j <= P; j++) for(int k = 0; k < i; k++) dp[i][j] = min(dp[k][j-1] + w[k+1][i], dp[i][j]); cout << dp[V][P] << endl; return 0; }
信息
- ID
- 246
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 3
- 标签
- 递交数
- 61
- 已通过
- 35
- 上传者