随笔分类 - 学习笔记
摘要:
概念 二项式反演其实就是利用容斥的思想处理一些通过求“至少或至多”来解决“恰好”的问题。 形式 \[ \begin{align*} f(n)=\sum_{i=0}^n(-1)^i\binom n i g(i)&\iff g(n)=\sum_{i=0}^n(-1)^i\binom n i f(i) \
阅读全文

摘要:
Matrix-Tree 定理 行列式 定义 对于一个 \(N\times N\) 的矩阵 \(A\),其行列式为 \[ \det(A)=\sum_{P}(-1)^{\mu(P)}\prod A_{i,P_i} \] 其中 \(P\) 为 \(N\) 的排列,\(\mu(P)\) 为 \(P\) 的逆
阅读全文

摘要:
Luogu P4389 付公主的背包 Link Description 有 \(n\) 种物品,每种物品体积为 \(v\),每种商品有无数个,求凑出体积为 \(m\) 的方案数。 \(1\le n,m \le 10^5,1\le v_i \le m\) Solution 需要一些生成函数的知识。 对
阅读全文

摘要:
#include <bits/stdc++.h> #define ll long long #define db double #define gc getchar #define pc putchar #define swap(a, b) a ^= b ^= a ^= b using namesp
阅读全文

摘要:
做多项式题就像嗑药,出多项式题就像贩毒。 ——某著名 OIer 代码戳这里 例题戳这里 多项式乘法 快速傅里叶变换 (FFT) 直接上链接( 快速傅里叶变换(FFT)详解 - 自为风月马前卒 总的来说就是先 DFT 从系数表示法到点值表示法,再 IDFT 从点值表示法到系数表示法。 简单说一下不太理
阅读全文

摘要:线段树优化建图适用于对一段区间内的点进行连边,如果暴力连边,复杂度是 \(O(n^2m)\) 的,显然过大。 考虑支持各种区间操作的线段树。建立两棵线段树,第一棵树从父亲向儿子连边权为 0 的边,这里称为入树,第二棵树从儿子向父亲连边权为 0 的边这里称为出树,它们的叶子节点是相同的,为题目里给出的
阅读全文
摘要:非旋Treap(fhq treap) 不需要旋转, 只需要分裂 $Split$ 和合并 $Merge$,就可以支持 $Splay$ 的所有操作。 非常好写,非常好调。 并且支持可持久化。 对于每个点需要一个附加权值,根据这个附加权值维护一个小根堆,这样这棵树平衡与否是由这个附加权值决定的,那么这个权
阅读全文
摘要:树形DP 求出每个子树的最长链,与父亲当前的最长链加起来更新直径,然后更新父亲最长链。 int f[N],mx; void dfs(int u,int fa) { for(int i = head[u]; i; i = e[i].nxt) { int v = e[i].v; if(v == fa)
阅读全文
摘要:对于 \(a^b \bmod p\),快速幂单次询问是 \(O(\log b)\) 的。 而有的题目可能要去掉 \(\log\),就用到了光速幂。 令 \(b=k \times s+t\ \ (t \le s)\) \(a^b \equiv a^{k \times s} \times a^t\ (\
阅读全文
摘要:求 \(\sum_{i=1}^ni^k\) 定义 \(B_0=1\) 且有 \(\sum_{i=0}^k\binom{k+1}{i}B_k=0\) 伯努利数的递推式 \(B_i=-\frac{1}{\binom{k+1}{i}}\sum_{j=0}^{i-1}\binom{k+1}{j}B_j\)
阅读全文