HDU 1421 搬寝室 (dp)
地址:http://acm.hdu.edu.cn/showproblem.php?pid=1421
思路:动态规划dp
借鉴代码如下:
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 }