1 条题解

  • -9
    @ 2023-3-11 16:05:59
    #include<bits/stdc++.h>
    #define int long long
    #define fo(i,a,b) for(int i=a;i<=b;i++)
    using namespace std;
    int n,k;
    int a[10001];
    int f[10001][1001];
    main(){
    	memset(f,0x3f,sizeof(f));
    	cin>>n>>k;
    	k+=3;
    	if(k*2>n){
    		cout<<-1;
    		return 0;
    	}
    	fo(i,1,n) cin>>a[i];
    	sort(a+1,a+n+1);
    	fo(i,0,n) f[i][0]=0;
    	fo(i,2,n){
    		fo(j,1,k){
    			f[i][j]=min(f[i-1][j],f[i-2][j-1]+(a[i]-a[i-1])*(a[i]-a[i-1]));
    		}
    	}
    	cout<<f[n][k];
    	return 0;
    }
    
    
    • 1

    信息

    ID
    372
    时间
    1000ms
    内存
    128MiB
    难度
    3
    标签
    递交数
    89
    已通过
    45
    上传者