解题思路
单调栈的基础应用。我们以矩形高度为单位建立一个单调不降的栈,每次输入一个新的矩形高度 h 时,如果新的高度比栈顶高度低,则一直 pop,并累计 pop 出的元素的宽度,每次 pop 我们都可以看做得到一个高度为 h,宽度为累计总宽度的一个矩形(可以看做是把这段的所有矩形高度都削减为 h),用它的面积更新答案。pop 结束后将我们最终得到的新矩形入栈即可。
分类 数据结构与算法 下的文章
Also available: UVALive 6957, Kattis hyacinth, UESTC 1119
在一个网络中给出 n 个节点,每个节点最多可以有两种频率,又给出 n-1 条边(题目保证形成树),要求每条边上的两个节点必须至少有一种频率相同,如果一种频率两个相连的节点所使用,那么这种频率就算做已使用的频率。要求使已使用频率的种数尽可能多,输出每个节点的频率。