misschuer

常用链接

统计

积分与排名

百事通

最新评论

hdu 1421 搬寝室 详解

 

 1#include <iostream>
 2#include <algorithm>
 3using namespace std;
 4
 5int cmp( const void *a , const void *b )
 6
 7    return *(int *) a - *(int *) b;
 8}

 9
10int dp[ 2000 ][ 1000 ];
11
12int main()
13{
14    
15    int n , k , i , j;
16    
17    int a[ 2000 ];
18    
19    while (scanf ("%d %d" , &n , &k) != EOF)
20    {
21        for(i = 1 ; i <= n ; ++ i)
22            
23            scanf ("%d" , &a[ i ]);
24        
25        qsort (a , n + 1 , sizeof (a[ 1 ]) , cmp);
26        
27        for(i = 1 ; i < n ; ++ i)
28            
29            a[ i ] = (a[i + 1- a[ i ]) * (a[i + 1- a[ i ]);
30        
31        
32        for(i = 0 ; i <= n ; ++ i)
33            
34            for(j = 1 ; j <= k ; ++ j)
35                
36                dp[ i ][ j ] = 100000000;
37            
38            
39            
40            for(i = 0; i <= n; ++ i)
41                
42                dp[ i ][ 0 ] = 0;
43            
44            
45            
46            for(i = 2 ; i <= n ; ++ i)
47                
48                for(j = 12 * j <= i ; ++ j )
49                {
50                    dp[ i ][ j ] = dp[ i - 1 ][ j ];
51                    
52                    if(dp[ i ][ j ] > dp[ i - 2 ][ j - 1+ a[ i - 1] )
53                        
54                        dp[ i ][ j ] = dp[ i - 2 ][ j - 1+ a[ i - 1];
55                }

56                
57                printf ("%d\n" , dp[ n ][ k ]);
58    }

59    
60    return 23;
61}

posted on 2009-04-18 15:37 此最相思 阅读(782) 评论(3)  编辑 收藏 引用 所属分类: dp

评论

# re: 搬寝室 详解 2009-04-18 22:01 Sunshine Alike

为啥叫搬寝室?  回复  更多评论   

# re: 搬寝室 详解 2009-04-19 10:06 GY

@Sunshine Alike
他乐意 我能怎么办。。。
  回复  更多评论   

# re: hdu 1421 搬寝室 2009-04-19 12:20 yangyin

不懂  回复  更多评论   


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理