P2301 就是干!题解
Otomachi_Una_ · · 题解
观察发现,假设要选四根木棒长度分别为
显然把
于是,我们把木棍长度从小到大排。
假设
时间复杂度
参考代码
#include<iostream>
#include<algorithm>
using namespace std;
#define ll long long
const int MAXN=505;
int n,m;
ll a[4*MAXN];
ll f[4*MAXN][MAXN];
int main(){
for(int i=1;i<MAXN;i++)
f[0][i]=f[1][i]=8e18;
cin>>m>>n;
for(int i=1;i<=m;i++)
cin>>a[i];
sort(a+1,a+m+1);
for(int i=2;i<=m;i++){
for(int j=1;j<=n;j++)
f[i][j]=min(f[i-1][j],f[i-2][j-1]+(a[i]-a[i-1])*(a[i]-a[i-1]));
f[i][0]=0;
}
cout<<f[m][n];
return 0;
}