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  }

 

posted on 2012-08-21 20:38  mycapple  阅读(190)  评论(0编辑  收藏  举报

导航