1 条题解

  • 0
    @ 2026-4-18 22:16:10

    #include<cstdio>
    #include<algorithm>
    #define N 3010
    int n,m,i,j,k,a[N];long long t,f[N][11];
    int main(){
      scanf("%d%d",&n,&m);
      for(i=1;i<=n;i++)scanf("%d",&a[i]);
      std::sort(a+1,a+n+1);
      for(i=0;i<=n;i++)for(j=0;j<=m;j++)f[i][j]=1000000000;
      for(f[0][0]=0,i=1;i<=n;i++)for(k=i,t=0;k;k--)for(t+=a[(k+i+1)>>1]-a[k],j=1;j<=m;j++)if(f[i][j]>f[k-1][j-1]+t)f[i][j]=f[k-1][j-1]+t;
      return printf("%lld",f[n][m]),0;
    }
    
    • 1

    信息

    ID
    4598
    时间
    1000ms
    内存
    128MiB
    难度
    10
    标签
    递交数
    1
    已通过
    1
    上传者