求助P1541
  • 板块学术版
  • 楼主Little_Lily
  • 当前回复4
  • 已保存回复4
  • 发布时间2022/7/23 11:04
  • 上次更新2023/10/27 18:48:23
查看原帖
求助P1541
359252
Little_Lily楼主2022/7/23 11:04

只有五十分

#include<iostream>
#include<iomanip>
#include<cstring>
#include<cmath>
#include<algorithm>
#define INF 1000000000
using namespace std;
int ans[2010],dp[2010][1010];
int main(){
    int n,k;
    while(cin>>n>>k){
        for(int i=1;i<=n;i++){
        	cin>>ans[i];
        }
        sort(ans+1,ans+1+n);
        for(int i=1;i<=n;i++){
        	for(int j=0;j<=k;j++){
            	dp[i][j]=INF;
            }
        }	
        for(int i=0;i<=n;i++){
        	dp[i][0]=0;
		}
        for(int i=2;i<=n;i++){
        	for(int j=1;j<=k&&2*j<=i;j++){
            	dp[i][j]=min(dp[i-1][j],dp[i-2][j-1]+(ans[i]-ans[i-1])*(ans[i]-ans[i-1]));
            }
        }
        cout<<dp[n][k]<<endl;
    }
    return 0;
} 

2022/7/23 11:04
加载中...