1 条题解
-
0
C++ :
#include<iostream> #include<cstdio> #include<cstdlib> #include<climits> #include<cstring> #include<algorithm> using namespace std; int f[200][200],a[200]; int n,k,i,j; int min(int a,int b) { if(a<b) return a; else return b; } void init() { scanf("%d%d",&n,&k); if((k+3)*2>n)cout<<-1<<endl,exit(0); for(i=1;i<=n;i++) scanf("%d",&a[i]); sort(&a[1],&a[n]+1); } int main() { init(); memset(f,0x3f,sizeof(f)); for(i=0;i<=n;i++)f[i][0]=0; for(i=2;i<=n;i++) for(j=1;j<=i/2;j++) f[i][j]=min(f[i-1][j],f[i-2][j-1]+(a[i]-a[i-1])*(a[i]-a[i-1])); printf("%d\n",f[n][k+3]); return 0; }
- 1
信息
- ID
- 819
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者