随笔分类 - 学习笔记
摘要:https://www.luogu.com/article/ey6cxlv5 考虑将原序列分块,块长为 ,那么对这些整块做 ST 表的复杂度就是 的,而这个东西小于 。 而对于散块,预处
阅读全文
摘要:引入 有一个排列,你可以通过“比较并交换”这个操作将该排列排好序,即,每次选择一对数 ,若 则交换,否则不交换。 但是,你可以把多对 放在一次操作里并行“比较并交换”,此时操作数记 1,与数对的对数无关,但是每个 只能出现至多
阅读全文
摘要:众所周知,双指针适用于一类固定左端点,右端点具有单调性的问题,由于每个点只会被删一次,所以令加入/删除的时间复杂度为 ,总时间复杂度 。 而对于一些信息,加入是简单的,但是删除是困难的(例如 gcd、min)等,这时我们考虑 baka's trick 把删除扔掉。
阅读全文
摘要:适用于 LCA 的欧拉序 构造方法:dfs 初次访问节点的时候的时候加入欧拉序,从某个子树访问完之后再次将该节点加入欧拉序。 大小:初次会额外访问一次根节点,并且每条边都会给两个端点贡献一次,故为 。 性质:两个节点的 LCA 在欧拉序上处于两个节点之间(虽然一个点
阅读全文
摘要:之前做了一道高维前缀和题做着做着忘掉怎么写了,遂记一发。 你说的对,但是我谈的真的很浅。 铺垫 回忆一下我们求前缀和是怎么求的。 一维前缀和: for(int i=1;i<=n;i++){ s[i]=s[i-1]+a[i]; } 没有任何问题对吧。 而求二维前缀和时,我们通常会使用如下方法求前缀和(
阅读全文
摘要:问题引入 给定 个数 ,求出该数列的绝对众数,保证该绝对众数存在。 ,空间限制 1MB。 算法介绍 摩尔投票法可以 空间 时间内求出一个数列的绝对众数,使用前提是数列保证存在绝对众数,否则你只能求出一个可能是绝对
阅读全文
摘要:Johnson 全源最短路算法 引入:多源最短路问题,设点数为 边数为 。 我们有如下方案: floyd,时间复杂度 ,适合任意图。 Bellman-ford(SPFA),时间复杂度 ,适合任意图。 Dijkstra,时间复杂度 \(O
阅读全文