CDQ分治套斜率优化 有一些特殊的动态规划题目,貌似可以化作$\frac{f_j f_k}{g_j g_k} include include include include include define int long long define maxn 300000 define INF 0x3f ...
分类:
其他好文 时间:
2019-08-31 19:13:45
阅读次数:
52
这两道题看起来几乎一模一样,但是第一道是绿题,第二道却是橙题,做法也很不一样。 为什么第二道可以直接递推,第一道却得用单调栈呢? 其实也不难分析。两道题的区别是是否限制填充矩形的宽度。第一道没有限制,对于每个高度需要用几个矩形便是未知的, 故须找出最优方案,所以根据其最优处理的特点利用单调栈处理每个 ...
分类:
其他好文 时间:
2019-08-25 00:36:37
阅读次数:
98
栈 属于 一种最基本的数据结构 具体的 维护一个一个序列 且这个序列中的元素满足先进后出 或者 后进先出类似于火车进站 可以想象一下。 而单调的栈 具有一些性质: 1 单调栈里的元素具有单调性 2 元素被加入到栈前 会在栈顶把破坏栈单调性的元素都删除。 3 使用单调栈可以找到元素向左遍历第一个比他小 ...
分类:
其他好文 时间:
2019-08-23 13:38:05
阅读次数:
77
参考链接: https://blog.csdn.net/qq_17550379/article/details/97020009 https://blog.csdn.net/qq_17550379/article/details/86519771 题意:一颗二叉树每个结点只能有0个或2个孩子,arr ...
分类:
其他好文 时间:
2019-08-22 11:20:25
阅读次数:
70
题目链接 "bzoj1657" 思路: 本题可用单调栈思想来解。维护一个单调下降的序列,由于是下降的,所以栈里的每一头牛的声音都不能被后面的牛听到。当一个身高较大的牛加入栈时,栈不再单调,需要踢掉一些牛,而那些牛的身高都比它矮所以可以把那些牛的声音加到当前牛的伤残值里。而由于那些较矮的牛的声音会被阻 ...
分类:
其他好文 时间:
2019-08-19 17:18:46
阅读次数:
74
题目就是求树上每个节点的所有祖先中(ci-cj)/(dj-di)的最小值。 那么就是(ci-cj)/(di-dj)的最大值了。 对于每一个点,它的(ci,di)都是二维坐标系里的一个点 要求的就是祖先节点的所有点与目前节点连线的最小斜率 比较容易想到单调栈优化,像斜率优化dp一样 但是关键是本题在树 ...
分类:
其他好文 时间:
2019-08-18 09:30:30
阅读次数:
69
Description 详见OJ Solution 第一眼看上去好像斜率$DP$,但仔细一看发现不能用单调队列维护。 然后$GG$。 正解使用单调栈来维护。 我们发现,我们维护的单调栈$g[]$的$a[]$是呈单调不下降的。 对于新加入的点i,我们需要将单调栈中$a[]$大于$a[i]$的弹出栈中, ...
分类:
其他好文 时间:
2019-08-17 18:22:06
阅读次数:
108
单调栈模板题 提供一种奇技淫巧的解法,均摊O(n) include include include include define int long long const int N = 100010; int ans, n; int a[N]; int l[N], r[N]; inline int ...
分类:
其他好文 时间:
2019-08-17 10:31:48
阅读次数:
66
C. Report time limit per test2 seconds memory limit per test256 megabytes inputstandard input outputstandard output Each month Blake gets the report c ...
分类:
其他好文 时间:
2019-08-11 20:30:44
阅读次数:
118