题目名称 4037. 建筑师
输入输出 brick.in/out
难度等级 ★★
时间限制 1000 ms (1 s)
内存限制 512 MiB
测试数据 10
题目来源 Gravatarsyzhaoss 于2024-10-21加入
开放分组 全部用户
提交状态
分类标签
LIS 动态规划
分享题解
通过:1, 提交:2, 通过率:50%
Gravatarsyzhaoss 100 0.283 s 3.38 MiB C++
Gravatar1nclude 20 16.046 s 3.37 MiB C++
关于 建筑师 的近10条评论(全部评论)

4037. 建筑师

★★   输入文件:brick.in   输出文件:brick.out   简单对比
时间限制:1 s   内存限制:512 MiB

【题目背景】

建筑师小H非常喜欢设计楼梯,用有限的石头将楼梯搭建的越高,小H成就感越强。

【题目描述】

当前有 $n$ 块可以用来制造楼梯台阶的石头。第 $i$ 块石头的长、宽、高分别为 $l_i,w_i,h_i$ 。为了方便路人攀登楼梯,小 H 在放置第 $i (i>1)$ 块石头时必须保证 $l_i<l_{i-1}$ 并且 $w_i<w_{i-1}$ 。

另:由于小 H 会一定的魔法,每块石头都可以当作高度分别为 $l_i,w_i,h_i$ 的三块石头使用,另两边作为长和宽,保证长 $\geq $ 宽。

【输入格式】

第一行,一个整数 $n$ 带表石头数量 。

接下来 $n$ 行,每行三个整数 $l_i$,$w_i$,$h_i$,分别表示第 $i$ 块石头的长、宽、高。

【输出格式】

一行,一个整数,表示这些石头能够堆成的最大高度。

【样例1输入】

1
10 20 30

【样例1输出】

40

【样例1说明】

长 $10$ 宽 $20$ 高 $30$ 的石头可以看作:长 $30$ 宽 $20$ 高 $10$,长 $30$ 宽 $10$ 高 $20$ ,长 $20$ 宽 $10$ 高 $30$ 的三块石头来使用。

由于题目要求 $l_i<l_{i-1}$ 并且 $w_i<w_{i-1}$ ,因此将长 $30$ 宽 $20$ 高 $10$ 的石头摆放在第一层,长 $20$ 宽 $10$ 高 $30$ 的石头摆放在第二层使得高度最高,为 $40$ 。

【样例2输入】

2
6 8 10
5 5 5

【样例2输出】

21

【样例3输入】

5
31 41 59
26 53 58
97 93 23
84 62 64
33 83 27

【样例3输出】

342

【数据规模与约定】

对于 $30\%$ 的数据 $n \leq 8$ 。

对于 $100\%$ 的数据 $n\leq 3000$,最后答案不会超过 $32$ 位整型 。