单调栈
qq_38232157
这个作者很懒,什么都没留下…
展开
-
POJ 3494 Largest Submatrix of All 1’s(单调栈)
单调栈题目意思:有一个 0 和 1 数字构成的矩阵,要求全是数字1构成的子矩阵的最大面积。题目类似于 POJ 2559。本题要点:1、算法竞赛进阶指南,54页,单调栈算法,依次扫描每一行即可。2、用数组 h[i][j]记录每一行的某一列对应大高度。#include <cstdio>#include <cstring>#include <iostream>using namespace std;const int MaxN = 2010;int h[原创 2020-07-24 17:31:31 · 78 阅读 · 0 评论 -
POJ 2796 Feel Good (单调栈,前缀和)
题目意思:给你一个序列,让你求其中一个子序列使得这个子序列和乘以这个子序列中最小值后最大。做法:1、 单调栈的典型题,可以吧每个 emotion[i] 看做是一个矩形,宽度为1,高度为 emotion[i]2、 题目转化为,以某点为中心(假设这点emotion 是最小的),往左和往右延伸,只要大于该中心的,就加入。题目要求,所有的矩形的面积总和 * 该点的高度emotion[i] 。假...原创 2020-02-05 00:17:42 · 121 阅读 · 0 评论 -
POJ 3250 Bad Hair Day 单调栈
题目意思:n头奶牛排成一排,且面朝右方。每一头奶牛只能看到高度比自己矮的奶牛。问每个奶牛能看到奶牛数目的和是多少。本题要点:1、单调栈的入门题目2、关键是, 答案要用 long long.int 会溢出#include <cstdio>#include <cstring>#include <iostream>#include <stack...原创 2020-02-03 22:08:13 · 84 阅读 · 0 评论 -
POJ 2082 Terrible Sets 单调栈,前缀和
题目意思:有很多个矩形,高矮不一。内部能够得到的最大矩形面积。本题要点:1、 Left[i], 表示 i 点能到达的右边的下标值, 显然,Left[1] = 1 (最左边一个矩形)Right[i], 表示 i 点能到达的左边的下标值, Right[n] = n(最右边的一个矩形)使用单调栈,初始化 Left[i] 和 Right[i] (详细见代码)2、 题目要求的面积 = 某个矩形i...原创 2020-02-03 20:58:37 · 106 阅读 · 0 评论