zoukankan      html  css  js  c++  java
  • hdu 1069 Monkey and Banana (LIS)

    Problem - 1069

      随便找到的一道题目。

      题意是给出一些的长方体,长方体可以用任意次数,可以任意翻转。如果一个长方体可以叠在另一个长方体上,条件是这个长方体的长和宽严格小于另一个长方体的长和宽。问给出的n种长方体最高可以叠到多高。

      因为长方体有三种不同的面,而且长方体的长和宽要严格小于前一个,所以可以将一个长方体拆成三种不同的面作为底面的长方体,而且假设长总是大于宽的。将长方体按照长和宽排序,然后假设len[i]是放置第i个长方体的时候能得到的最大高度,之后的做法基本上跟LIS的操作一样了。

     代码如下:

     1 #include <cstdio>
     2 #include <iostream>
     3 #include <algorithm>
     4 
     5 using namespace std;
     6 
     7 struct Node {
     8     int l[3];
     9 } rec[111];
    10 
    11 bool cmp(Node a, Node b) {
    12     if (a.l[1] != b.l[1]) return a.l[1] < b.l[1];
    13     return a.l[2] < b.l[2];
    14 }
    15 
    16 int len[111];
    17 
    18 int main() {
    19 //    freopen("in", "r", stdin);
    20     int n, cas = 1;
    21     while (cin >> n && n) {
    22         for (int i = 0; i < n; i++) {
    23             for (int j = 0; j < 3; j++) {
    24                 cin >> rec[i * 3].l[j];
    25             }
    26             sort(rec[i * 3].l, rec[i * 3].l + 3);
    27             for (int j = 1; j <= 2; j++) {
    28                 rec[i * 3 + j] = rec[i * 3];
    29                 swap(rec[i * 3 + j].l[0], rec[i * 3 + j].l[1]);
    30             }
    31             swap(rec[i * 3 + 2].l[0], rec[i * 3 + 2].l[2]);
    32         }
    33         n *= 3;
    34         int mx = 0;
    35         sort(rec, rec + n, cmp);
    36         for (int i = 0; i < n; i++) {
    37             len[i] = 0;
    38             for (int j = 0; j < i; j++) {
    39                 if (rec[j].l[1] < rec[i].l[1] && rec[j].l[2] < rec[i].l[2]) {
    40                     len[i] = max(len[j], len[i]);
    41                 }
    42             }
    43             len[i] += rec[i].l[0];
    44             mx = max(mx, len[i]);
    45         }
    46         printf("Case %d: maximum height = %d\n", cas++, mx);
    47     }
    48     return 0;
    49 }
    View Code

    ——written by Lyon

  • 相关阅读:
    C++强制类型转换操作符 const_cast
    URL的UTF-8 decode
    react-8 路由
    react-7 条件渲染与列表渲染
    react-6 react 生命周期
    react-5 受控组件,非受控组件与高阶函数
    react-4 react 组件的三大属性
    react-3 JSX 语法
    react-2 react环境搭建
    react-1 React
  • 原文地址:https://www.cnblogs.com/LyonLys/p/hdu_1069_Lyon.html
Copyright © 2011-2022 走看看