zoukankan      html  css  js  c++  java
  • ch9uva437 The Tower of Babylon

     1 #include <bits/stdc++.h>
     2 using namespace std;
     3 
     4 const int maxn = 30+5;
     5 int n,blocks[maxn][3],d[maxn][3];
     6 
     7 void get_dimensions(int* v,int b,int dim){
     8     int idx=0;
     9     for(int i=0; i<3; i++) if(i!=dim)
    10         v[idx++] = blocks[b][i];
    11 }
    12 
    13 
    14 int dp(int i,int j){
    15     if(d[i][j]>0) return d[i][j];
    16     d[i][j] = 0;
    17     int v[2],v2[2];
    18     get_dimensions(v,i,j);
    19     for(int a=0; a<n; a++){
    20         for(int b=0; b<3; b++){
    21             get_dimensions(v2,a,b);
    22             if(v2[0]<v[0] && v2[1]<v[1]) d[i][j] = max(d[i][j],dp(a,b));
    23         }
    24     }
    25     d[i][j] += blocks[i][j];
    26     return d[i][j];
    27 }
    28 
    29 int main(){
    30     int kase = 0;
    31     while(scanf("%d",&n)==1 && n){
    32         for(int i=0; i<n; i++){
    33             for(int j=0; j<3; j++)
    34                 scanf("%d",&blocks[i][j]);
    35             sort(blocks[i],blocks[i]+3);
    36         }
    37         memset(d,0,sizeof(d));
    38         int ans = 0;
    39         for(int i=0; i<n; i++)
    40             for(int j=0; j<3; j++)
    41                 ans = max(ans,dp(i,j));
    42         printf("Case %d: maximum height = %d
    ",++kase,ans);
    43     }
    44 }
  • 相关阅读:
    第五章 条件语句
    第四章 javaScript运算符
    第三章 javaScript数据类型
    看电影学英语十
    英语口语会话十
    看电影学英语九
    英语口语会话九
    英语口语会话八
    看电影学英语八
    Linux command line and shell scripting buble
  • 原文地址:https://www.cnblogs.com/yxg123123/p/6827753.html
Copyright © 2011-2022 走看看