#include<bits/stdc++.h>
using namespace std;
int main()
{
int n,k,a[300010],dp[300010];
cin>>n>>k;
for(int i=1;i<=n;i++)
cin>>a[i];
sort(a+1,a+n+1);
for(int i=1;i<=n;i++) dp[i]=a[i]-a[1];
for(int i=2*k;i<=n;i++){
dp[i]=min(dp[i-1]+a[i]-a[i-1],dp[i-k]+a[i]-a[i-k+1]);
}
cout<<dp[n];
}
using namespace std;
int main()
{
int n,k,a[300010],dp[300010];
cin>>n>>k;
for(int i=1;i<=n;i++)
cin>>a[i];
sort(a+1,a+n+1);
for(int i=1;i<=n;i++) dp[i]=a[i]-a[1];
for(int i=2*k;i<=n;i++){
dp[i]=min(dp[i-1]+a[i]-a[i-1],dp[i-k]+a[i]-a[i-k+1]);
}
cout<<dp[n];
}
dp部分i为什么从2k开始啊
全部评论
(1) 回帖