P8806 搬砖题解
P8806 [蓝桥杯 2022 国 B] 搬砖
题目描述
这天,小明在搬砖。
他一共有
他想知道这样堆成的塔的总价值(即塔中所有砖块的价值和)最大是多少。
输入格式
输入共
后面
输出格式
一行,一个整数表示答案。
输入输出样例 #1
输入 #1
1 | 5 |
输出 #1
1 | 10 |
说明/提示
【样例说明】
选择第
【评测用例规模与约定】
对于
对于
蓝桥杯 2022 国赛 B 组 J 题。
题解
AC Code
1 |
|
P8806 [蓝桥杯 2022 国 B] 搬砖 题解
题目理解
我们有
关键思路
这道题的核心在于确定砖块的堆叠顺序。考虑两块砖 A 和 B,假设 A 在 B 的上面:
- 对 A 的限制:上面总重量
- 对 B 的限制:上面总重量
如果交换位置(B 在 A 上面):
- 对 B 的限制:
- 对 A 的限制:
可以发现,当
动态规划
确定顺序后,问题转化为:按照排序后的顺序依次考虑每块砖,决定是否将其放在当前塔的最底部。
定义状态:dp[j] 表示当前塔的总重量为
对于第
状态转移方程:
代码解析要点
- 排序规则:按照
从小到大排序,对应从上到下的堆叠顺序。 - 内层循环范围:
从 枚举到。上界 保证了放置第块砖时,它上面的总重量 ,满足题目要求。 - 逆序遍历:从大到小枚举
,保证每块砖只被使用一次(0/1背包特性)。 - 答案更新:每次状态转移后都实时更新答案,因为最优解不一定出现在最后一块砖。
复杂度分析
- 时间复杂度:
,最坏情况约 ,可以接受。 - 空间复杂度:
。
总结
本题的关键在于发现砖块的排序规律
- 标题: P8806 搬砖题解
- 作者: The Redefine Team
- 创建于 : 2026-07-21 09:39:43
- 更新于 : 2026-07-24 07:40:12
- 链接: https://redefine.ohevan.com/2026/07/21/P8806-搬砖题解/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论