摘要: 1.单调队列优化\(dp\) 维护最小值:\(x \leqslant q.tail()\) 维护最大值:\(x \geqslant q.tail()\) 其实原理不难,当\(dp\)的转移源头是一个区间时,往往使用单调队列来维护区间最值(一般队列里装下标以方便维护区间大小,但也只是一般情况),节省了 阅读全文
posted @ 2024-02-17 12:28 why?123 阅读(19) 评论(0) 推荐(0) 编辑
摘要: 看逆天算法,品百味OI#4 1.重链剖分 给出如下定义: 重子结点:一个点的子节点中子树最大的点 轻子节点:剩余的子节点 重边:该节点到重子节点的边 轻边:到轻子节点的边 重链:若干条首尾相接的重边 预处理由两个DFS实现 DFS1:记录节点的父节点、深度、子树大小、重子结点 DFS2:记录所在链的 阅读全文
posted @ 2024-02-17 12:24 why?123 阅读(13) 评论(0) 推荐(0) 编辑
摘要: 最考验开数组的一集(巨容易\(RE\)) 权值线段树 本质:线段树维护桶 叶子节点表示某数出现了几次,负责\([l,r]\)的点表示\([l,r]\)中的数共出现了几次 用途: 查看某数的排名 查看某区间内数的个数 查看第\(k\)大/小的数 对于第三种操作,我们每次把\(k\)与左/右子树的大小比 阅读全文
posted @ 2024-02-17 07:51 why?123 阅读(25) 评论(0) 推荐(0) 编辑