zoukankan      html  css  js  c++  java
  • HDU 1069

    dp[i] 表示以第i块木块放在最顶端得到的最高高度

    dp[i] = max{dp[i] , dp[j]+block[i].h} j<i

     1 #include <cstdio>
     2 #include <cstring>
     3 #include <algorithm>
     4 #include <iostream>
     5 using namespace std;
     6 #define N 1000
     7 struct Block{
     8     int x , y , h;
     9 };
    10 
    11 bool cmp(const Block &a,const Block &b){
    12     if(a.x>b.x) return true;
    13     if(a.x==b.x&&a.y>b.y) return true;
    14     return false;
    15 }
    16 
    17 int k , dp[N];
    18 Block block[N];
    19 
    20 int main()
    21 {
    22   //  freopen("a.in" , "r" , stdin);
    23     int cas = 0;
    24     int n , a , b , h;
    25     while(~scanf("%d" , &n)){
    26         if(n == 0) break;
    27         k = 0;
    28         memset(dp,0,sizeof(dp));
    29         for(int i = 0 ; i < n ; i++){
    30             scanf("%d%d%d" , &a , &b , &h);
    31             block[k].x = a , block[k].y = b , block[k++].h = h;
    32             block[k].x = b , block[k].y = a , block[k++].h = h;
    33             block[k].x = a , block[k].y = h , block[k++].h = b;
    34             block[k].x = h , block[k].y = a , block[k++].h = b;
    35             block[k].x = b , block[k].y = h , block[k++].h = a;
    36             block[k].x = h , block[k].y = b , block[k++].h = a;
    37         }
    38 
    39         sort(block , block+k , cmp);
    40 
    41         for(int i = 0 ; i<k ; i++){
    42             dp[i] = block[i].h;
    43             for(int j = 0 ; j<=i ; j++){
    44                 if(block[i].x < block[j].x && block[i].y < block[j].y){
    45                     dp[i] = max(dp[i] , dp[j] + block[i].h);
    46                 }
    47             }
    48         }
    49 
    50         int maxn = 0;
    51         for(int i = 0 ;  i<k ; i++)
    52             maxn = max(maxn , dp[i]);
    53         printf("Case %d: maximum height = %d
    " , ++cas , maxn);
    54     }
    55     return 0;
    56 }
  • 相关阅读:
    Navicat Premium 12安装及破解(四)
    ajax原理及应用(十六)
    为什么每次下载后必须关闭掉IO流(十五)
    FormData提交文件(十四)
    代理设计模式(三)
    单例模式(二)
    工厂模式(一)
    集采用的验证规则
    java泛型的理解
    spring中如何直接注入session和request对像
  • 原文地址:https://www.cnblogs.com/CSU3901130321/p/4172778.html
Copyright © 2011-2022 走看看