![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
单调栈
alan_cty
蒟蒻一只
别打脸(⊙o⊙)哦
展开
-
[ARC 063 F]Snuke's Coloring 2
Description给出一个wxh的网格图,和n个点,求一个周长最大的矩形,满足这个矩形内部没有点。注意矩形边界上不算在内部。 n<=2*1e5Solution首先让我们来想一个分治做法。 分治了一条中线,我们想要求出跨过中线的答案。 那么对于中线上下两侧,我们做两个单调栈,用扫描线维护当前的右端点,然后左端点只能在单调栈上。 当然你不能暴力求上下单调栈是哪个,我们可以用线段树来维护每一段原创 2018-04-05 11:27:40 · 605 阅读 · 1 评论 -
虚树学习小记
前言有一类问题,形如:给出一棵n个点的树,每次给出k个关键点,求这些关键点之间的一些信息。 保证∑k和n同阶 而对于一次询问是很好用树形Dp之类的方法解决的。 观察到只有关键点有用,我们可以只保留关键点和两两之间的lca,这就是虚树。 显然虚树的大小是O(k)的,只有dfs序相邻的两个点的lca有用 建出虚树后这类问题我们只需要在虚树上Dp就可以了。 但虚树要怎么建立?单调栈我们先把所有原创 2018-04-25 21:13:22 · 256 阅读 · 0 评论 -
[LOJ6515]「雅礼集训 2018 Day10」贪玩蓝月
Description要求维护一个双端队列,支持:在队尾/队头添加一个体积为w,价值为v的物品删除队尾/队头的物品询问从所有物品中选出若干个,满足体积和对Mod取模后在[l,r]内的价值的最大值Q<=50000,Mod<=500Solution考虑维护两个栈,每次在栈顶添加就直接背包如果一个栈删空了就从另一个栈中取一半暴力重构这个东西可以看做是线性的询问就是一个区间...原创 2019-03-03 21:51:58 · 782 阅读 · 0 评论