
单调栈
文章平均质量分 74
stormjing7
这个作者很懒,什么都没留下…
展开
-
【CCF-CSP】201312-3 最大的矩形(单调栈)
【CCF-CSP】201312-3 最大的矩形题目给 n 个数,代表 n 个矩形的高度,将 n 个矩形平放,求能剪出的最大矩形的面积。n < 1e3。分析这题跟 POJ-2559 一样,不过数据很水,暴力也行。用单调栈可以达到 O(n) 的做法。对于每个数,找到向左向右第一个比当前数小的数的位置,就可以确定包含当前数的矩形的最大宽度,而高度即是当前数的值。#include &...原创 2020-02-21 18:37:46 · 521 阅读 · 1 评论 -
POJ - 3250 Bad Hair Day(单调栈)
POJ - 3250 Bad Hair Day题意:题目给一个数组,设每一个数的右边有N个数比他小(连续的),即找到每个数右边第一个比他大的数的位置减它的位置。输出所有N的和。分析:很明显单调栈,符合单调栈的特点:利用单调栈,可以找到从左/右遍历第一个比它小/大的元素的位置#include <bits/stdc++.h>#define INF 0x3f3f3f3f#defin...原创 2019-04-20 21:13:47 · 451 阅读 · 0 评论 -
POJ - 2559 Largest Rectangle in a Histogram(单调栈)
POJ - 2559题意:给你宽度为一,高度不同的n个矩形,让剪出一个最大面积的矩形。分析:其实可以转化为求寻找某一子序列,使得(子序列中的最小值乘以子序列的长度)的值最大,也就是遍历每一个位置向左向右找第一个比他小的数,结果就是(右界减左界)* (当前位置高度)。符合单调栈特点:利用单调栈,可以找到从左/右遍历第一个比它小/大的元素的位置#include<iostream>#...原创 2019-04-20 22:37:29 · 455 阅读 · 0 评论 -
poj 2796 Feel Good (单调栈)
题意:给定一序列,寻找某一子序列,使得(子序列中的最小值乘以子序列所有元素和)的值最大。序列值全为正数。分析:分析每一个数,找到向左向右第一个比他小的数,这个区间就是以它为最小值的最优区间,比较每一个最优区间即可。单调栈:利用单调栈,可以找到从左/右遍历第一个比它小/大的元素的位置#include <cstdio>#include <vector>#include...原创 2019-04-21 11:38:04 · 258 阅读 · 0 评论 -
2019南昌icpc网络赛 I. Max answer (单调栈)
Alice has a magic array. She suggests that the value of a interval is equal to the sum of the values in the interval, multiplied by the smallest value in the interval.Now she is planning to find the ...原创 2019-04-21 22:22:45 · 454 阅读 · 0 评论 -
ACM-ICPC 2018 南京赛区网络预赛 B. The writing on the wall(暴力,单调栈)
ACM-ICPC 2018 南京赛区网络预赛 B. The writing on the wall题目给一个 n * m 的矩阵,和 k 个矩阵上的污点,问没有在污点上的子矩阵有多少。分析首先想如果没有污点,怎么算所有矩阵。枚举子矩阵右下角,n * m种情况。在确定子矩阵右下角为 (i, j)时,考虑长宽,因为本题 m 范围 100,所以枚举宽,1~m,每种宽对应 i 种高。代码:f...原创 2019-08-09 21:01:33 · 334 阅读 · 0 评论