3938: 蓝桥杯真题(14):最大矩形纸片
Memory Limit:128 MB
Time Limit:1.000 S
Judge Style:Text Compare
Creator:
Submit:6
Solved:2
Description
描述
一张半边参差不齐的网格纸(网格边长均为1),有一边是完整没有破损的。现要从中剪出一片面积最大的矩形纸片。
给定网格纸中完整边的长度N(1≤N≤1000000),以及网格中每一列残存部分的高度(1≤高度≤10000),输出能够剪出的最大矩形纸片面积。
一张半边参差不齐的网格纸(网格边长均为1),有一边是完整没有破损的。现要从中剪出一片面积最大的矩形纸片。
给定网格纸中完整边的长度N(1≤N≤1000000),以及网格中每一列残存部分的高度(1≤高度≤10000),输出能够剪出的最大矩形纸片面积。
例如: N=6,每一列残存部分的高度依次为3、2、1、4、5、2,如下图所示:
可以发现,沿着红色框可以剪出的矩形纸片面积最大,为8,所以输出8.
Input
第一行输入一个正整数N(1≤N≤1000000),表示纸片完整边的长度;
第二行输入N个正整数(1≤正整数≤10000),表示每列格子残存部分的高度,两个正整数之间用一个空格隔开。
第二行输入N个正整数(1≤正整数≤10000),表示每列格子残存部分的高度,两个正整数之间用一个空格隔开。
Output
输出一个正整数,表示能够剪出的最大矩形纸片面积。
Sample Input Copy
6
3 2 1 4 5 2
Sample Output Copy
8
HINT
解析:从第i列开始,向左右两侧进行,找到第一个小于第i列高度的列。但是时间复杂度较高。需要用单调栈进行优化。