随笔分类 - 模板
摘要:把一棵树拆成若干个不相交的链,然后用一些数据结构去维护这些链 重链剖分 对于每一个节点,找出它的重儿子,那么这棵树就自然而然的被拆成了许多重链与许多轻链 如何对这些链进行维护? 首先,要对这些链进行维护,就要确保每个链上的节点都是连续的 因此我们需要对整棵树进行重新编号,然后利用 dfs 序的思想,
阅读全文
摘要:哈希 好用的哈希模数: unsigned long long/long long 自然溢出 \(2654435769\)(存疑) \(1610612741\)(极力推荐) \(998244353\),\(10^9+7\)(经典,貌似容易被×) 提供一种 \(N\) 模数哈希的写法: Luogu P3
阅读全文
摘要:【模板】线段树 2 题目描述 如题,已知一个数列,你需要进行下面三种操作: 将某区间每一个数乘上 \(x\); 将某区间每一个数加上 \(x\); 求出某区间每一个数的和。 输入格式 第一行包含三个整数 \(n,q,m\),分别表示该数列数字的个数、操作的总个数和模数。 第二行包含 \(n\) 个用
阅读全文
摘要:加法高斯消元 这个很好理解,指一步步消掉未知数,然后回推,这里就不详细说了 #include<bits/stdc++.h> #define int long long #define ll long long #define ull /*unsigned*/ long long #define fd
阅读全文
摘要:CDQ分治 论文 oi.wiki 【模板】三维偏序(陌上花开) 题目描述 有 $ n $ 个元素,第 $ i $ 个元素有 $ a_i,b_i,c_i $ 三个属性,设 $ f(i) $ 表示满足 $ a_j \leq a_i $ 且 $ b_j \leq b_i $ 且 $ c_j \leq c_
阅读全文
摘要:#include<bits/stdc++.h> //#define int long long #define ll long long #define fd(i,a,b) for(register int i=a;i<=b;i=-~i) #define bd(i,a,b) for(register
阅读全文