数据结构 —— 栈、队列、堆
数据结构 —— 栈、队列、堆
c4Lnn
这个作者很懒,什么都没留下…
展开
-
牛客小白月赛13 H. 小A的柱状图
链接 https://ac.nowcoder.com/acm/contest/549/H 题意 求非等宽柱状图中的最大矩形面积 思路 两个单调栈分别维护每个柱形的左边界和右边界 代码 #include <bits/stdc++.h> #define SZ(x) (int)(x).size() #define ALL(x) (x).begin(),(x).end() #define PB push_back #define EB emplace_back #define MP make_pair原创 2021-02-04 21:45:53 · 89 阅读 · 0 评论 -
2020牛客暑期多校训练营(第二场)F. Fake Maxpooling
链接 https://ac.nowcoder.com/acm/contest/5667/F 题意 一个 n∗mn*mn∗m 的矩阵,每个单元格 Ai,j=lcm(i,j)A_{i,j}=lcm(i,j)Ai,j=lcm(i,j),求所有 k∗kk*kk∗k 的子矩阵中的最大值的和 思路 二维滑动窗口 暴力求 AAA 为 O(nmlogn)O(nmlogn)O(nmlogn),考虑 O(nm)O(nm)O(nm) 的求法(见代码) 设 mx[i][j]mx[i][j]mx[i][j] 为以 (i,j)(i,原创 2020-07-28 21:46:21 · 95 阅读 · 0 评论 -
POJ 3784. Running Median
链接 http://poj.org/problem?id=3784 题意 给出一个长度为奇数的序列,输出前 1,3,5,…1,3,5,\dots1,3,5,… 个数的中位数 思路 对顶堆 建立一个小根堆和大根堆 如果当前数比小根堆堆顶大,插入小根堆 如果当前数比小根堆堆顶小,插入大根堆 大根堆堆顶是始终小于小根堆堆顶的 当已经插入的个数为奇数时,我们要保证大根堆里的数比小根堆里的数少一个 如果大根堆里的数多,则把大根堆堆顶插入小根堆 如果小根堆里的数多,则把小根堆堆顶插入大根堆 所以小根堆堆顶就是中位数 代原创 2020-07-28 15:33:02 · 83 阅读 · 0 评论