题库首页 › 蓝桥杯大赛(Python) › 题目 5688

题目描述: (注.input()输入函数的括号中不允许添加任何信息) 编程实现: 工人砌了一面奇特的砖墙,该墙由N列砖组成(1≤N≤106),且每列砖的数量为Ki(1≤Ki≤104,相邻两列砖之间无缝隙),每块砖的长宽高都为1。 小蓝为了美化这面墙,需要在这面墙中找到一块面积最大的矩形用于涂鸦,那么请你帮助小蓝找出最大矩形,并输出其面积。 例如:N = 6,表示这面墙有6列,每列砖的数量依次为3、2、1、5、6、2,如下图: 图中虚线部分是一块面积最大的矩形,其面积为10。 输入描述 第一行输入一个正整数N(1≤N≤10^6),表示这面砖墙由几列砖组成 第二行输入N个正整数Ki(1≤Ki≤10^4),表示每列砖的数量,正整数之间以一个空格隔开 输出描述 输出一个正整数,表示最大矩形的面积 【样例输入】 6 3 2 1 5 6 2 【样例输出】 10

题目描述: (注.input()输入函数的括号中不允许添加任 题目配图

正确答案:柱状图最大矩形,单调栈:\nn=int(input());h=list(map(int,input().split()));h.append(0)\nst=[];ans=0\nfor i,x in enumerate(h):\n while st and h[st[-1]]>x:\n j=st.pop();w=i if not st else i-st[-1]-1;ans=max(ans,h[j]*w)\n st.append(i)\nprint(ans)

答案解析

评分标准:

8分:能正确输出第一组数据;

8分:能正确输出第二组数据;

8分:能正确输出第三组数据;

8分:能正确输出第四组数据;

8分:能正确输出第五组数据;

8分:能正确输出第六组数据;

8分:能正确输出第七组数据;

8分:能正确输出第八组数据;

8分:能正确输出第九组数据;

8分:能正确输出第十组数据。

试卷来源:202305(第14届)蓝桥杯Python编程青少组(省赛)真题

本卷相关题目

在线做题 同科目题库