随笔分类 -  数据结构 -- 单调栈

摘要:【BZOJ5502】[GXOI/GZOI2019]与或和(单调栈) 题面 "BZOJ" "洛谷" 题解 看到位运算就直接拆位,于是问题变成了求有多少个全0子矩阵和有多少个全1子矩阵。 这两个操作本质就是一样的,不妨考虑有多少个全1子矩阵。 预处理出每个元素向上能够找的最多的1的个数, 阅读全文
posted @ 2019-04-18 15:21 小蒟蒻yyb 阅读(328) 评论(2) 推荐(0) 编辑
摘要:【BZOJ2228】[ZJOI2011]礼物(单调栈) 题面 "BZOJ" "洛谷" 题解 如果这个玩意不是一个三维立方体,而是一个二维的矩形,让你在里面找一个最大正方形,那么全世界都会做。 丢到三维上?似乎区别也不是很大啦。 我们先把每一层一片一片的剖开考虑,预处理以某个位置为左上角的最大正方形边 阅读全文
posted @ 2018-10-31 20:26 小蒟蒻yyb 阅读(326) 评论(0) 推荐(0) 编辑
摘要:AtCoder Grand Contest 005 A STring 翻译 给定一个只包含ST的字符串,如果出现了连续的ST,就把他删去,然后所有位置前移。问最后剩下的串长。 题解 模拟栈,和维护括号一样的。 cpp include include using namespace std; 阅读全文
posted @ 2018-09-19 17:06 小蒟蒻yyb 阅读(543) 评论(0) 推荐(0) 编辑
摘要:【BZOJ4709】柠檬(动态规划,单调栈) 题面 "BZOJ" 题解 从左取和从右取没有区别,本质上就是要分段。 设f[i]表示前i个位置的最大值。 那么相当于我们枚举一个前面的位置j,然后找到这一段中最大的s0t2 但是这样子很不优秀。 我们贪心的思考一下,既然这一段最后加起 阅读全文
posted @ 2018-07-13 20:38 小蒟蒻yyb 阅读(462) 评论(0) 推荐(0) 编辑
摘要:【BZOJ4540】【HNOI2016】序列(莫队) 题面 "BZOJ" "洛谷" Description 给定长度为n的序列:a1,a2,…,an,记为a[1:n]。类似地,a[l:r](1≤l≤r≤N)是指序列:al,al+1,…,ar 1,ar。若1≤l≤s≤t≤r≤n,则称a[s:t]是a[ 阅读全文
posted @ 2018-03-31 22:05 小蒟蒻yyb 阅读(410) 评论(0) 推荐(0) 编辑
摘要:【BZOJ4237】稻草人(CDQ分治,单调栈) 题面 "BZOJ" 题解 CDQ分治好题呀 假设固定一个左下角的点 那么,我们可以找到的右下角长什么样子??? 发现什么? 在右侧是一个单调递减的东西 那么,对于每一个已经固定好的左下角 我们可以通过单调栈来维护答案 既然只有左下角对右上角会产生 阅读全文
posted @ 2018-02-05 19:31 小蒟蒻yyb 阅读(398) 评论(0) 推荐(0) 编辑
摘要:【BZOJ1007】水平可见直线(单调栈) 题解 Description 在xoy直角坐标平面上有n条直线L1,L2,...Ln,若在y值为正无穷大处往下看,能见到Li的某个子线段,则称Li为 可见的,否则Li为被覆盖的. 例如,对于直线: L1:y=x; L2:y= x; L3:y=0 则L1和L 阅读全文
posted @ 2017-12-30 16:53 小蒟蒻yyb 阅读(291) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示