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  }

 

你可能感兴趣的:(HDU)