随笔分类 - 模板
摘要:把一棵树拆成若干个不相交的链,然后用一些数据结构去维护这些链 重链剖分 对于每一个节点,找出它的重儿子,那么这棵树就自然而然的被拆成了许多重链与许多轻链 如何对这些链进行维护? 首先,要对这些链进行维护,就要确保每个链上的节点都是连续的 因此我们需要对整棵树进行重新编号,然后利用 dfs 序的思想,
阅读全文
摘要:哈希 好用的哈希模数: unsigned long long/long long 自然溢出 \(2654435769\)(存疑) \(1610612741\)(极力推荐) \(998244353\),\(10^9+7\)(经典,貌似容易被×) 提供一种 \(N\) 模数哈希的写法: Luogu P3
阅读全文
摘要:维护序列-区间乘与区间加 题目描述 老师交给小可可一个维护数列的任务,现在小可可希望你来帮他完成。 有长为N的数列,不妨设为a1,a2,…,aN 。 有如下三种操作形式: (1)把数列中的一段数全部乘一个值; (2)把数列中的一段数全部加一个值; (3)询问数列中的一段数的和,由于答案可能很大,你只
阅读全文
摘要:加法高斯消元 这个很好理解,指一步步消掉未知数,然后回推,这里就不详细说了 #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
阅读全文
