rt(part1
#include <bits/stdc++.h>
using namespace std;
int n,k,p=0,a[114514],s[114514],f[1005][1005];
int main(){
scanf("%d%d",&n,&k);
for(int i=1;i<=n;i++){
char str[25];
scanf("%s",str);
a[i]=strlen(str);
p+=a[i];
s[i]=s[i-1]+a[i];
}
p/=k;
for(int i=1;i<=n;i++)
for(int j=2;j<=k;j++) f[i][j]=0X7fffffff;
for(int i=1;i<=n;i++) f[i][1]=s[i]*s[i];
for(int j=2;j<=k;j++)
for(int i=j;i<=n;i++)
for(int j=1;k<i;k++)
f[i][j]=min(f[i][j],f[k][j-1]+(s[i]-s[k])*(s[i]-s[k]));
printf("%.1lf\n",f[n][k]/k-p*p);
return 0;
}
样例:
4 2
xxx xxxxx xxxx xx
都过不了