
单调栈
文章平均质量分 60
PoPoQQQ
这个作者很懒,什么都没留下…
展开
-
BZOJ 1012 JSOI2008 最大数maxnumber 单调栈+二分 / 线段树
题目大意:。。。自己看 题目大意:。。。我还是说说吧 给定一个初始为空的序列 提供两种操作: 1.查询序列后Q个数字中的最大值 2.在序列尾部插入(n+t)%d,其中t是上一次查询的结果 首先我们发现 如果一个数的右面有一个比他大的数,那么这个数永远不会成为最大值 他就会被弹掉 说白了这题要维护一个单调递减的单调栈 对于每次查询我们二分查找L的位置即可 这题线段树也能写 而且大多数人写原创 2014-09-12 20:24:29 · 1963 阅读 · 0 评论 -
BZOJ 3611 HEOI2014 大工程 倍增LCA+单调栈+树形DP
题目大意:给定一棵树,m次询问,每次给出k个关键点,询问这k个点之间的两两距离和、最小距离和最大距离 n 处理方法同2286 消耗战 地址见 http://blog.youkuaiyun.com/popoqqq/article/details/42493725 这个题的DP有些麻烦 因此我把要处理的节点单独拎出来做的DP 具体状态和转移见代码 #include #includ原创 2015-01-07 17:48:09 · 2716 阅读 · 0 评论 -
BZOJ 2286 SDOI2011 消耗战 倍增LCA+单调栈
题目大意:给定一棵树,边上有边权,m次询问,每次选定一些关键点,求将1号节点与所有关键点都切断所需的最小花销 关键点的总数 首先我们考虑暴力想法 令f[x]表示切断以x为根的子树中所有关键点的最小花销 g[x]表示x是不是关键点 那么对于x的每个子节点y有f[x]=Σmin(g[y]?INF:f[y],Distance(x,y) ) 这样每次暴力做一遍树形DP,时间复杂度是O(n*原创 2015-01-07 15:26:44 · 3110 阅读 · 0 评论 -
BZOJ 1057 ZJOI2007 棋盘制作 单调栈
题目大意:给定一个黑白两色的矩阵,求最大的黑白相间的子正方形和子矩阵 将奇数位置的点反色,然后就是求纯色的最大子正方形和子矩阵 将矩阵一层层剖分,每层上方是一段类似于▆▃▇▂▉的东西,用单调栈跑出每个点向左向右能拓展到的最大距离,更新答案即可 #include #include #include #include #define M 2020 using namespace std;原创 2015-01-20 09:25:06 · 1221 阅读 · 0 评论 -
BZOJ 1563 NOI2009 诗人小G 四边形不等式
题目大意:玩具装箱,然而指数变成了pp(p≤10p\leq10)首先我们需要证明决策单调 由于数死早,还是戳这里吧知道决策单调之后怎么办呢? 由于是1D1D,所以不能分治了每个决策点能决策的区间一定是连续的一段 并且随着决策点的右移 这个区间也在不断右移令g[j]g[j]表示决策点jj能贡献的最左侧的位置 然后我们开一个栈来维护当前存在贡献的贡献点 那么显然stack[i]stack[i]原创 2015-06-18 12:38:56 · 2547 阅读 · 0 评论