单调栈和单调队列长得不是很像。 单调栈的用处是求以一个元素为中心,向两边最多拓展多远距离。 两个小时就没了。。。 poj2796 #include<cstdio> using namespace std; typedef long long ll; #define N 200010 struct d ...
                            
                            
                                分类:
其他好文   时间:
2017-02-12 01:05:54   
                                阅读次数:
143
                             
                    
                        
                            
                            
                                    题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1102 题意:中文题诶~ 思路:单调栈/预处理 (这篇博客就不细写了啦,只给出代码和转过来的两篇不错的题解,好困了~) 单调栈:http://blog.csdn. ...
                            
                            
                                分类:
其他好文   时间:
2017-01-24 02:14:32   
                                阅读次数:
279
                             
                    
                        
                            
                            
                                    单调栈的介绍及一些基本性质 http://blog.csdn.net/liujian20150808/article/details/50752861 依次把矩形塞进单调栈,保持其单增,矩形中的元素是一个三元组,存储其位置,高度,以及以其为高度的情况下,大矩形的左边界最多扩展到哪里。 每次将新的元素 ...
                            
                            
                                分类:
其他好文   时间:
2017-01-15 23:53:33   
                                阅读次数:
321
                             
                    
                        
                            
                            
                                    copy from hzwer @http://hzwer.com/1234.html 侵删 1.1 基本数据结构 1. 数组 2. 链表,双向链表 3. 队列,单调队列,双端队列 4. 栈,单调栈 1.2 中级数据结构 1. 堆 2. 并查集与带权并查集 3. hash 表 自然溢出 双hash  ...
                            
                            
                                分类:
编程语言   时间:
2017-01-06 15:26:09   
                                阅读次数:
418
                             
                    
                        
                            
                            
                                    给出一个n节点的无向树,每条边都有一个边权,给出m个询问,每个询问询问ki个点,问切掉一些边后使得这些顶点无法与顶点1连接。最少的边权和是多少。(n<=250000,sigma(ki)<=500000) 考虑树形DP,我们令mn[i]表示i节点无法与1节点相连切除的最小权值。显然有mn[i]=min ...
                            
                            
                                分类:
其他好文   时间:
2017-01-06 14:26:04   
                                阅读次数:
155
                             
                    
                        
                            
                            
                                【题目分析】 判断有多少个长度不小于k的相同子串的数目。 N^2显然是可以做到的。 其实可以维护一个关于height的单调栈,统计一下贡献,就可以了。 其实还是挺难写的OTZ。 【代码】 ...
                            
                            
                                分类:
编程语言   时间:
2017-01-04 00:10:03   
                                阅读次数:
261
                             
                    
                        
                            
                            
                                    后缀数组裸题,每次的查询单调栈扫一遍就完了。为什么要写虚后缀树= =后缀数组不是自带虚树的结构么= = ...
                            
                            
                                分类:
其他好文   时间:
2016-12-29 19:27:46   
                                阅读次数:
206
                             
                    
                        
                            
                            
                                    Description 每次可以将大于 \(k\) 的一个数 \(-1\), 在左边或右边的数 \(+1\) ,问最大能得到多长的序列每个数都大于等于 \(k\) . Sol 单调栈. 这道题好神啊qwq...思路++ 首先如果一段序列满足 \(\sum_{i=l}^ri \geqslant k(r ...
                            
                            
                                分类:
其他好文   时间:
2016-12-23 22:34:45   
                                阅读次数:
163
                             
                    
                        
                            
                            
                                【题目分析】 本来是单调栈的题目,用笛卡尔树可以快速的水过去。 把每一个矩阵看成一个二元组(出现的顺序,高度)。 然后建造笛卡尔树。 神奇的发现,每一个节点的高度*该子树的大小,就是这一块最大的子矩阵的可能解。 用二元组的第一个下标来限制,使它们在一块儿,然后堆的性质又限制了宽度以及高度。 计算,取 ...
                            
                            
                                分类:
其他好文   时间:
2016-12-21 02:00:46   
                                阅读次数:
145
                             
                    
                        
                            
                            
                                    Description 有一个长度为n的字符串,每一位只会是p或j。你需要取出一个子串S(从左到右或从右到左一个一个取出),使得不管是从左往右还是从右往左取,都保证每时每刻已取出的p的个数不小于j的个数。你需要最大化|S|。 有一个长度为n的字符串,每一位只会是p或j。你需要取出一个子串S(从左到右 ...
                            
                            
                                分类:
其他好文   时间:
2016-12-16 23:19:39   
                                阅读次数:
232