上一页 1 2 3 4 5 6 7 8 ··· 12 下一页
摘要: 涉及到RMQ,RMQ之和,最大子矩形等,子矩形数量等问题,可以考虑笛卡尔树。 笛卡尔树就是每次找到区间中的最值,按照这个位置将区间分为2份递归建树。 这样,最值就是lca了。 RMQ之和就是lca之和,可以枚举lca算贡献。 最大子矩形等就是每个点的权值乘以它对应的区间长度的最大值。 子矩形数量就是 阅读全文
posted @ 2020-08-04 21:42 lnzwz 阅读(227) 评论(0) 推荐(1) 编辑
摘要: 这些方法可以用于最短路,网络流,连通性等问题。 对于区间到区间/点的连边,直接上线段树就行了,这个很简单 对于点到区间/子矩阵的连边(最短路问题),还可以用线段树/KD树维护dis数组,进行区间和某数取min的操作。 P5471 [NOI2019]弹跳 对于序列的某个前/后缀的连边,可以直接把这个序 阅读全文
posted @ 2020-08-04 21:13 lnzwz 阅读(158) 评论(0) 推荐(1) 编辑
摘要: 很多时候,在进行莫队操作时,会遇到添加容易删除难的问题。 比如涉及到最值的运算。 这时,可以使用回滚莫队。 首先,和普通莫队一样,对序列进行分块。 对于左右端点在同一个块的询问,直接暴力求解。 然后,枚举左端点所在的块,并将右端点排序。 将左端点设为区间右端点,右端点从小到大移动。 这样,左端点每次 阅读全文
posted @ 2020-07-04 21:45 lnzwz 阅读(253) 评论(0) 推荐(0) 编辑
摘要: 通常,矩阵树定理算出的生成树是边权乘积的和。 如果计算所有生成树边权和的和,比较暴力的方法就是枚举一条边,然后计算包含这条边的生成树个数。 这样的时间复杂度是$O(mn3)$的,最坏为$O(n3)$。 考虑优化: 对于一条边权为w的边,将边权设为关于x的多项式$1+wx$。 这样,容易证出,最后的一 阅读全文
posted @ 2020-06-24 22:54 lnzwz 阅读(773) 评论(0) 推荐(0) 编辑
摘要: 题意: 给出n个矩形,求一个面积最小的矩形,使其能容纳这些矩形。 \(n \leq 6\)。 首先,通过枚举排列,确定这n个矩形的排列顺序。 然后,按照这个顺序,以此放置每个矩形。 把第一个矩形放在左上角。 之后,枚举每个矩形x。为了使矩形尽量紧凑,这个矩形一定要紧挨在某个矩形y的右侧。 枚举这个矩 阅读全文
posted @ 2020-06-13 16:41 lnzwz 阅读(175) 评论(0) 推荐(0) 编辑
摘要: 通常,构造最小割时,我们对残量网络进行bfs,设能够到达的集合为S,不够到达的集合为T (遍历时考虑反向边),则从S指向T的边被割掉。 但是有时,需要求字典序最小的最小割。 我们可以把所有的边从小到大排序,并遍历。 如果当前边可以删除,那么就删除它,否则继续。 一条边$(u,v,w)$能被删除有2个 阅读全文
posted @ 2020-05-16 20:20 lnzwz 阅读(266) 评论(0) 推荐(0) 编辑
摘要: 题意:求基环树随机点分治次数期望 首先,这道题的本质是给分治中心随机排列。 考虑分治中心x与y连通的概率,若x到y是一条链,就要求x到y上的所有点,在x之后被删除。 把这些概率加到一起就是答案。 如果这条链包含的点数为a,容易证出此时是1/a。 (共有$n!$种情况,满足条件的有$\frac{n!} 阅读全文
posted @ 2020-05-10 15:02 lnzwz 阅读(178) 评论(0) 推荐(0) 编辑
摘要: 题意:有N个数,问有多少个x,$(x\leq T)$,满足这N个数分别+x后,异或和为S。每个数小于$2^M$。 数位DP。 由于是加法,需要记录进位,因此从低位到高位DP。 只要记录下有几个进位,就可以根据这N的数的大小知道究竟是哪几个进位了。 设$dp(i,j,0/1)$表示考虑到第i位,有j个 阅读全文
posted @ 2020-05-05 11:02 lnzwz 阅读(184) 评论(0) 推荐(1) 编辑
摘要: [toc] 转对偶图 平面图的最小割对应着对偶图的最短路。 方法: 首先把每条边拆成双向边。 然后,把每个点的所有出边按极角进行排序。 每次:从任意一条未标记的边$(u,v)$开始,把它标记,并找到v的出边中极角序在$(v,u)$之后的第一条边。 直到找到一条被标记的边。 这时,我们就找到了一个面。 阅读全文
posted @ 2020-05-02 21:49 lnzwz 阅读(265) 评论(0) 推荐(0) 编辑
摘要: [toc] kd 树是一种分割 k 维数据空间的数据结构。 它通常被用来解决 k 维空间中的距离最值 ( 第 k 小值 ) 问题。 当然,它也能解决其它问题。 建树的方法: 假设我们的平面上的点的序列为 [l,r] 。 我们先选定一个维度为基准,不妨假设是 x 维度。 然后我们找出 [l,r] 这些 阅读全文
posted @ 2020-05-02 21:07 lnzwz 阅读(209) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 ··· 12 下一页