115.hdu--1421--搬寢室

注意:dp[i][j]初始化的時候不能小於0xffffff明顯大於2^15但是吧再小就WA了
#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
int dp[2002][1002] = {0};
int main()
{
	int n,k;
	while(cin>>n>>k){
		int i,j;
		int w[2002] = {0};
		for(i=0;i<n;++i)cin>>w[i];
		sort(w,w+n);
		for(i=0;i<=n;i++)
            for(j=1;j<=k;j++)
                dp[i][j]=0xfffffff;//最少6個F
        for(i=2;i<=n;i++)
            for(j=1;j<=i/2&&j<=k;j++)
                dp[i][j]=min(dp[i-1][j],dp[i-2][j-1]+(w[i-1]-w[i-2])*(w[i-1]-w[i-2]));
		cout<<dp[n][k]<<endl;
	}
	return 0;
}
發佈了160 篇原創文章 · 獲贊 0 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章