[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=2678 [算法] 首先不难想到如下DP : 记f[i]表示前i本书的高度和最小值 显然 , 有状态转移方程 : f[i] = min{ fj + max{hj+1 , hj+2 , ... hi} } 不难发现 , 当i确定时 , 随着j的减小 , max{hj + 1 , hj+2 , ... hi}的值单调递增 不妨维护一个单调递减的单调栈 预处理前缀和 , 每次在单调栈中二分出…