文章分类 - OI
摘要:Contest 本博客更新很慢,有时候你会碰到施工现场(半成品草稿),是正常现象 \(1\). 数论定义 \(2\). 整除 \(3\). 最大公约数与最小公倍数 \(4\). 素数 \(5\). 同余 \(6\). 排列与组合 \(7\). 斐波那契数列 \(8\). 导数与积分 \(9\). 莫
阅读全文
摘要:扫描线的前置基础是 线段树 扫描线用于解决一些 覆盖问题或者重复问题, 比如说现在我有这样一道题: 题源 洛谷P5490 (CLOI 的 Vjudge 转存) 给出 \(n\) 个平行于坐标轴的矩形的坐标,求它们的面积并. 面积并指的是这些矩形的最大覆盖面积. 不难发现,当坐标绝对值很大时,我们采用
阅读全文
摘要:打线段树的时候容易踩的坑 数组开四倍 建树的时候叶节点赋值之后要return 单点修改的时候叶节点赋值之后也要return 单点修改的时候,要根据当前mid与搜索位置判断是要修改左子树还是右子树 区间查询的时候,边界条件不是 $ t[id].l=x \And\And t[id].r=y $,而是 $
阅读全文
摘要:温馨提示:Contest 大字的右侧有目录可以快速跳转 Contest 背包DP 线性DP 区间DP 坐标DP 树形DP 状压DP 概率与期望DP 计数DP 单调优化DP 背包DP 背包DP可以理解为“从若干物品中选择特定物品”的问题的统称. 对背包问题开dp数组,通常需要考虑以下几个维度 已选物品
阅读全文
摘要:树上背包问题的使用场景 当一个问题满足树的结构,而且需要让我们选取某些边或某些点,使权值取到最值。这样的问题是树上背包问题. 树上背包模板 树上背包问题使用dfs. 一般来说,树上背包问题的基本框架如下图: void dfs(int s){ for(i:遍历s的全部子节点){ dfs(i); for
阅读全文
摘要:图论专题总结 Author : HaneDaniko Contest 二叉树遍历 欧拉路和欧拉回路 最短路 判断负环 判断最小环 最小生成树 拓扑排序 并查集 分层图和分层图最短路 tarjan dfs序 树上公共祖先 差分约束 二分图 扫描线 树链剖分 1. 二叉树遍历 二叉树分为前序遍历,中序遍
阅读全文
摘要:最小环-Floyed < \(O(N^{3})\) (\(N\)为节点数)> 关于Floyed能用于求解最小环的证明 对于一个环,我们总可以在环上找到任意三个点 \(i,j,k\) . 这三个点会把一个环分成三部分 我们设从 \(x\) 到 \(y\) 的最短距离为 \(dis[i][j]\),那么
阅读全文
摘要:优化思路 不用扫偶数,偶数只有2是素数,预处理一下即可. 初始化不用扫偶数(如果你还在用传统遍历初始化方法). 判断素数后不用扫偶数倍数,因为根本没初始化成素数. 总之就是把 i=2;;++i 都换成了 i=3;;i+=2 . 复杂度降一半. 代码 (还挺好背的) scanf("%d",&a); m
阅读全文
摘要:什么是分层图最短路 分层图是指有很多个平行的图,各个平行的图之间有特殊的连接边。 分层图最短路,是在原有的求图中某两个点之间的最短路基础上增加一个条件——可以选择 \(k\) 条路,将它们的路径长度变为零(或者其他操作,常见的还是变为0,其他的我们暂不考虑),这样即可通过缩短路径长度,找出在该条件下
阅读全文