hdu1421 搬寝室
1 #include<cstring> 2 #include<iostream> 3 #include<algorithm> 4 #define P(x,y) ((x-y)*(x-y)) 5 using namespace std; 6 int a[2010],d[2010][2010]; 7 int main() 8 { 9 int i,j,n,k; 10 while(cin>>n>>k){ 11 for(i=0;i<n;++i) 12 cin>>a[i]; 13 sort(a,a+n); 14 memset(d,0,sizeof(d)); 15 for(i=1;i<=n;++i) 16 for(j=1;j<=k;++j) 17 if(i>2*j){ 18 d[i][j]=min(d[i-1][j],d[i-2][j-1]+P(a[i-1],a[i-2])); 19 }else{ 20 d[i][j]=d[i-2][j-1]+P(a[i-1],a[i-2]); 21 } 22 cout<<d[n][k]<<endl; 23 } 24 system("pause"); 25 return 0; 26 }
刚开始学动态规划,也没想想着用动态规划去借,结果用其他方法折腾了半天还总是WA,最后只能还是动态规划解决!!