摘要:
只会写增量法 orz 例题:P2287 随机种子 0x383494 被卡了精度,`eps=1e-10` 太大了 ```cpp #include #include #include #include #include #include #include #define UP(i,s,e) for(au 阅读全文
摘要:
以 P3690 为例。 ```cpp #include #define UP(i,s,e) for(auto i=s; isum = x->val ^ x->ls->sum ^ x->rs->sum; } void reverse(Node *); void pushdown(Node *x){ i 阅读全文
摘要:
核心思想:将 dp 方程写成广义矩阵形式,然后用线段树等数据结构维护。 广义矩阵:假设 $A \ast B = C$,其中 $A,B$ 均为 $n\times n$ 方阵,则 $$ C_{ij} = \bigoplus \limits_{k=1}^{n} (A_{ik} \otimes B_{kj} 阅读全文
摘要:
对多个答案同时二分。 每次将答案在 $[l, r)$ 中的询问按答案与 $\text{mid}$ 的关系丢进两个 $[l, \text{mid})$ 和 $[\text{mid}, r)$ 的 `std::vector` 里,递归求解即可。 递归终止的条件:可能的答案区间长度为 $1$,此时答案唯一 阅读全文
摘要:
朝鲜树是一种平衡树。当深度超过一个(自己指定的值)时暴力将整棵树重构。 阅读全文
摘要:
K-D Tree 的二进制分组: (以下默认 2-D Tree,即下文中的 \(k\) 不是 K-D 中的K.) 维护一个 K-D Tree 的森林,各子树大小为 \(2^x\). 设当前元素数量为 \(x\),则 x&(1<<k) == 1 说明当前维护的森林里有大小为 \(2^k\) 的 K-D 阅读全文
摘要:
这是一篇模仿算导风格的学习笔记。 [my cnblog](https://www.cnblogs.com/x383494/p/17540768.html) ## 普通莫队 例题:[P1494](https://www.luogu.com.cn/problem/P1494) 给定一个长为 $n$ 的数 阅读全文
摘要:
[题目传送门](https://www.luogu.com.cn/problem/P1654) 观前提示:作者期望水平不高,如果公式等有错欢迎指出 我们知道,(粗略地来说)期望是一系列事件的结果乘上发生的概率。 考虑到 $n-1$ 位时连续长度的期望:$EX=\sum x_ip_i$,如何用它求出下 阅读全文
摘要:
离线算法。在时间轴上建线段树(可能要事先离散化),要维护的东西用 `vector` 什么的挂在线段树的节点上,DFS 一遍线段树,每次进入一个节点就加入要维护的东西,离开时撤销即可。 由于 DFS 的特性,只需支持最近的 `undo`,用 `stack` 可维护。 阅读全文
摘要:
用于维护「敌人的敌人是朋友」这类的关系。 例题:[luogu P2024](https://www.luogu.com.cn/problem/P2024) 对于点 $i \in [0, n)$(我习惯用这种方法编号),假想一个点 $i+n$ 是它的食物,则 $i$ 捕食 $j$ 可以通过合并 $j$ 阅读全文