Fork me on GitHub
摘要: 【高级数据结构】cdq分治(陌上花开·三维偏序) 一、陌上花开 题目链接:陌上花开 对于这道题我们需要求三维偏序中每个元素比其小的元素个数 我们先对数组进行排序,$x$ 为第一关键字,$y$ 为第二关键字,$z$ 为第三关键字,从小到大排序 然后是去重,因为这道题是求带等号的偏序 接着就是算法的主题 阅读全文
posted @ 2018-12-06 15:05 Paul·Shi 阅读(257) 评论(0) 推荐(0) 编辑
摘要: CF1080E Sonya and Matrix Beauty (字符串哈希,Manachar算法) 题目链接:CF1080E 这道题思维十分巧妙; 回文串有这样几个性质:$1、$ 长度为偶数的回文串中所有字符出现次数均为偶数 $2、$ 长度为奇数的回文串中仅且只有一个字符出现次数为奇数,其余字符出 阅读全文
posted @ 2018-12-06 10:12 Paul·Shi 阅读(338) 评论(0) 推荐(0) 编辑
摘要: CF1080D Olya and magical square\ 题目链接:CF1080 这是一道很值得探究的数论找规律题(虽然大多数论都是找规律题) 为了简化题目,我们将所走的路径都放到正方形的边缘上 性质一:如果 $n>31$,那么我们可以对整个正方形切割一次,再对右下角的正方形随意切割,显然右 阅读全文
posted @ 2018-12-06 08:29 Paul·Shi 阅读(336) 评论(0) 推荐(0) 编辑
摘要: CF1080C Masha and two friends (矩阵的重叠面积) 题目链接:CF1080C 有关在坐标轴内矩阵的重叠覆盖,格点计算都是毒瘤题,但见到了还是要A的 这类题目一般会有一些化繁为简的技巧 这道题,是有关黑白格点的计算,我们可以利用容斥来做 首先我们记 $B(x_1,y_1,x 阅读全文
posted @ 2018-12-05 21:03 Paul·Shi 阅读(287) 评论(0) 推荐(0) 编辑
摘要: CF1080F Katya and Segments Sets 题目链接:CF1080F 我们考虑先将 $l$ 按从大到小排序,我们就可以降掉一维。 我们通过二分可以在 $log \ K$ 的时间复杂度内快速找到有效的 $l$ 端点; 我们对于每个 $l$ 的数组下标为根建一个线段树 我们的线段树维 阅读全文
posted @ 2018-12-05 20:20 Paul·Shi 阅读(349) 评论(0) 推荐(0) 编辑
摘要: 1、倍增求距离时,要注意将最后和父节点的距离算上2、逆序对开long long3、如果是求关于2份的,注意间隔计算(最大取值时)例:P31434、使用差分约束系统时,要先spfa一遍判断所有点是否连通 例:[USACO05DEC]layout布局5、a%b=a-b*(a/b) a/b向下取整6、定义 阅读全文
posted @ 2018-12-05 12:55 Paul·Shi 阅读(472) 评论(0) 推荐(0) 编辑
摘要: 【动态树】动态树的应用 (总) 一、维护链的信息 通过split在树中处理出一条链,y点所储存的值就是答案 当要处理树的边权相关的问题时,我们可以化一条边为一个带权的点,就可以一般化处理了 二、动态维护连通性&强联通分量 维护连通性:findroot进行判断,其他就是link、cut的操作了 维护强 阅读全文
posted @ 2018-12-04 14:36 Paul·Shi 阅读(1074) 评论(0) 推荐(0) 编辑
摘要: 【动态规划】动态$DP$ (树链剖分维护&&LCT维护) 一、不带修改的树形$DP$ 有这样一道题:没有上司的舞会 我们可以很快地得出树形$DP$的转移方程,以达到$O(N)$求解 二、带修改的树形DP与矩阵乘法,树链剖分的联系 但如果带上修改呢?如这道题:动态DP 我们不可能每修改一次便$O(N) 阅读全文
posted @ 2018-12-04 11:15 Paul·Shi 阅读(786) 评论(4) 推荐(0) 编辑
摘要: 动态点分治 先看一道题目 [ZJOI2007]捉迷藏 显然如果不带修改O(N)的树形动规和O(NlogN)的静态点分治都可以切掉这道题 一、点分树 考虑点分治,对于每一个分治区域树的重心的答案只会与其所有子区域树有关,所以我们可以再构建一颗点分树: 在点分治的过程中,我们把每个区域树的重心和其子区域 阅读全文
posted @ 2018-12-03 12:28 Paul·Shi 阅读(258) 评论(0) 推荐(0) 编辑
摘要: 割点的概念 在无向连通图中,如果将其中一个点以及所有连接该点的边去掉,图就不再连通,那么这个点就叫做割点(cut vertex / articulation point)。 例如,在下图中,0、3是割点,因为将0和3中任意一个去掉之后,图就不再连通。如果去掉0,则图被分成1、2和3、4两个连通分量; 阅读全文
posted @ 2018-12-03 09:50 Paul·Shi 阅读(822) 评论(0) 推荐(1) 编辑