摘要:
~~详细介绍看心情可能会补~~ ~~放这就是想方便参考顺便水篇博客~~ 我们要维护一个数组的信息,但是我们也要查询历史信息 大概思想是不同线段树相同的部分共用点 每次修改都复制原来点再进行修改,这样肯定不冲突 通过记录不同版本根节点编号来做索引 其实写起来跟普通线段树的区别就是修改的时候需要重新建点 阅读全文
摘要:
### 前置芝士 单调队列优化 DP ⌈ 写不动数据结构呜呜呜,先来补这个 ⌋ 对于一个 DP,我们想优化祂的 ⌈ 转移 ⌋ 有些题目的可选状态有以下特征 + 需要寻找最值 + 可选状态区间平移 + 存在可以永久去除的多余状态 感性的讲,可行性是一个滑动窗口,状态两两之间都可以 ⌈ 直接比较出优劣 阅读全文
摘要:
很萌很可爱!就是把纸质笔记上 letex 写在这里有亿点慢 ### 线性筛 埃氏筛, $O(n\log\log n)$ ,思路是 ⌈ 标记所有质数的倍数 ⌋ 这样每个合数可能会被标记好几次,我们改进一下,让每个合数只有一种被标记的方式,即 ⌈ 最小质因子 * 常数 ⌋ 具体而言,⌈ 枚举 $2\to 阅读全文
摘要:
引入 维护一棵树,支持两种操作 改变边权 | 边权 询问路径中最大权(或其他) BF 的期望是 \(O(\log n)\),但是容易退化成 \(O(n)\),所以引入树链刨分,这里用轻重链刨分 轻重链刨分 记 \(SIZE_i\) 表示以 \(i\) 为根的子树的节点个数,那么对于 \(x\) 为的 阅读全文
摘要:
### BST $v_i$ 表示点权,$x$ 表示当前点,$L$ 表示左子树,$R$ 表示右子树 在普通二叉树的基础上多一个条件 对于 $p\in L$,满足 $v_p\leq v_x$ 对于 $q\in R$,满足 $v_x using namespace std; struct node { i 阅读全文
摘要:
前置知识:lowbit运算 \(lowbit(x)\) 表示正整数 \(x\) 在二进制表示下最低位的 \(1\) 跟后面的 \(0\) 构成的数值 ,有 \(lowbit(x)=x\) & $ ($ ~\(~x+1)\) ,即 \(lowbit(x)=x\) & \(-x\),理由如下: \(lo 阅读全文
摘要:
### 定义 对于两个点,LCA是它们的祖先(或自己)中距离他们最近的点 ### 不妙做法 查询 $O(n)$ #### 向上标记 Rt. 一个节点不断往父节点跑,标记节点 另一个节点也是往上跑碰到标记过的就是LCA #### 向上调整 Rt. 深度深的节点往上调,调到深度一样 如果调成一样了第一个 阅读全文
摘要:
给定一张 $n$ 个点、$m$ 条边的有向图,求 $1$ 号点到每个点的最短路径长度。 我们用 $dis_{i}$ 表示从点 $1$ 到点 $i$ 的最短距离。 + 初始化 $dis_{1}$ 为 $0$,其余为无穷大,搞一个队列并将起点入队 + 取队头 $x$,遍历它的出边 $x$ 至 $y_i$ 阅读全文
摘要:
### 随机数 ``` #include #include srand((unsigned)time(NULL)); ``` 之后可调用```rand()```函数,生产 $0$ ~ $32767$ 的整数 ### 对拍 写三个程序,正解,暴力和数据生成 整出来三个 exe 文件 建一个 bat 文 阅读全文
摘要:
#### 定义 若在$\mod p$ 意义下,对于一个整数 $a$ ,有 $a*x\equiv 1(\mod p)$,那么这个整数 $x$ 即为 $a$ 的乘法逆元,同时 $a$ 也为 $x$ 的乘法逆元。 #### 充要条件 $a$ 存在模 $p$ 的乘法逆元的充要条件是 $\gcd(a,p)=1 阅读全文