Codeforces Round #622 (Div. 2) C2. Skyscrapers (hard version) 题意: 你是一名建筑工程师,现给出 n 幢建筑的预计建设高度,你想建成峰状,如: 1 2 3 2 1 → 1 2 3 2 1 1 2 3 1 2 → 1 2 3 1 1 8 1 ...
分类:
其他好文 时间:
2020-03-19 21:25:05
阅读次数:
52
# 题意 直方图是在公共基线处对齐的一系列矩形组成的多边形,各矩形具有相同的宽度,但可以有不同的高度,求最大矩形的面积例如 阴影部分即最大面积 # 题解建立一个递增单调栈,保存高度1) 当前矩形的高度比栈顶矩形高,直接进栈2) 当前小于栈顶就不断去除,累计所有取出的矩形的宽度之和,并且每弹出一个矩形 ...
分类:
其他好文 时间:
2020-03-15 10:03:12
阅读次数:
71
# 题意 n个数的整数序列,输出每个数左边第一个比它小的数,不存在输出-1 # 题解 输出左边第一个比当前数小的数,栈中存的数是单调上升的,因为后加入的数永远比前加入的数靠后,所以在新加入数的时候只会先考虑后加入的,只有前面的数比后加入的小才会被考虑到,所以栈中只会存单调上升的序列 1 #inclu ...
分类:
其他好文 时间:
2020-03-15 09:29:07
阅读次数:
50
C. Skyscrapers The outskirts of the capital are being actively built up in Berland. The company "Kernel Panic" manages the construction of a residenti ...
分类:
其他好文 时间:
2020-03-13 13:14:32
阅读次数:
47
【题目描述】 有一个长度为 $n$ 的排列 $p_0, p_1, \cdots, p_{n 1}$,通过这个排列生成了一个长度为 $n$ 的序列 $S$,其中 $S_i$ 表示由 $p_0, p_1, \cdots, p_i$ 组成的递增单调栈的大小。 换一种说法,序列 $S$ 是由如下代码生成的: ...
分类:
其他好文 时间:
2020-03-09 13:49:49
阅读次数:
55
A - A POJ - 3494 先回忆一下单调栈:解决如下问题:一个点可以向右延伸和向左延伸的最大值,维护一个单增的栈,那么对于栈里的元素a来说,右边的元素都能向右延伸的,左边的元素都不能延伸,如果说一个要进来的元素破坏了单调性,那么我就一直pop最后一个pop的元素实际上就是 这个要入栈的元素能 ...
分类:
其他好文 时间:
2020-03-05 15:25:43
阅读次数:
61
$(\displaystyle \sum^{}_{1 include include include using namespace std; const int N = 5e5 + 3; long long ans; int cnt, l[N], r[N], s[N], lg[N], T, rmq ...
分类:
其他好文 时间:
2020-03-02 10:44:00
阅读次数:
56
Codeforces Round 622 (Div. 2) C2. Skyscrapers (hard version) 问题 "传送门" 我是参考了这篇题解 "传送门" ,然后按着思路做出了的(但大佬题解中的sumr[]数组操作我没看懂,然后自己改了改)。 摘抄: 维护峰值最优 找左右边的第一个比 ...
分类:
其他好文 时间:
2020-02-29 20:52:19
阅读次数:
49
题目链接 题解思路: 利用单调栈去找出每一个位置 i 左边第一个高度小于它的位置 L 和右边第一个高度小于它的位置 R ,然后在区间 (L,i] 所能取到的最大值即为h[ i ],这段区间对整体的贡献就是 (i - L) * h[ i ],对右边做同样处理,最后我们只需要找到它整体最大的那个位置即可 ...
分类:
其他好文 时间:
2020-02-27 21:01:38
阅读次数:
64
构造出的结果一定是一个单峰/\这种样子的 1 #define HAVE_STRUCT_TIMESPEC 2 #include<bits/stdc++.h> 3 using namespace std; 4 long long a[500007]; 5 pair<long long,long long ...
分类:
其他好文 时间:
2020-02-26 10:22:22
阅读次数:
64