以前记下的

  • 欧拉回路中一个点所有邻接边奇偶性一定一半奇数一般偶数,假设一个点有m条邻接边,m/2条进来的,m/2条出去的,相邻的两条奇偶性一定不同。

  • 树的直径不一定唯一,但是直径中点唯一(可以分一下类,发现所有情况下都满足)

  • 树上任意一个点到达与其相距最远的点的路径必然经过树的中点

  • DAG 最小路径覆盖(覆盖所有的点) = DAG 节点数 - 对应二分图的最大匹配

  • 二分图最小点覆盖(选最少的点覆盖所有的边) = 最大匹配

  • 二项式反演
    \(f_k\) 恰好k个,\(g_k\) 至多k
    \(g_k=\sum\limits_{i=0}^{k}\binom{k}{i}f_i\)
    反演得
    \(f_k=\sum\limits_{i=0}^{k}(-1)^{k-i}\binom{k}{i}g_i\)

    \(f_k\) 恰好k个,\(g_k\) 至少k
    \(g_k=\sum\limits_{i=k}^{n}\binom{i}{k}f_i\)
    反演得
    \(f_k=\sum\limits_{i=k}^{n}(-1)^{i-k}\binom{i}{k}g_i\)

  • 斯特林数与上升幂下降幂

    • \(x^{\bar{n}}=\sum\limits_{i=0}^{n}\begin{bmatrix}n\\i\end{bmatrix}x^{i}\)
    • \(x^{\underline{n}}=\sum\limits_{i=0}^{n}(-1)^{n-i}\begin{bmatrix}n\\i\end{bmatrix}x^{i}\)
    • \(x^n=\sum\limits_{i=1}^{n}\binom{x}{i}i!\begin{Bmatrix}n\\i\end{Bmatrix}\)
  • 裂项法
    \(\frac{1}{a(a+b)}=\frac{1}{b}(\frac{1}{a}-\frac{1}{a+b})\)

  • 指数型生成函数
    \(e^x=1+\frac{x}{1!}+\frac{x^2}{2!}+\frac{x^3}{3!}+...=\sum\limits_{i=0}^{\infty}\frac{x^i}{i!}\)
    证明用到泰勒公式 \(f(x)=\sum\limits_{i=0}^{\infty}\frac{f^{i}(x_0)}{i!}(x-x_0)^{i}\)
    \(f(x)=e^x\)\(x=0\) 处泰勒展开后,由 \(\left[ e^x \right]' =e^x\),得 \(e^x=\sum\limits_{i=0}^{\infty}\frac{x^i}{i!}\)

    一般指数型生成函数我们会写作 \((e^x)^{cnt}=(1+\frac{x}{1!}+\frac{x^2}{2!}+...)^{cnt}\)
    \(e^{ax}\) 展开式为 \(1+\frac{ax}{1!}+\frac{(ax)^2}{2!}+\frac{(ax)^3}{3!}+...\),所以其 \(x^n\) 项系数为 \(\frac{a^n}{n!}\)
    \(x^n\) 项系数为 \(n\) 个位置, \(a\) 个可重集的排列方案数中的分母部分,系数再乘上 \(n!\) 才是总方案数

    另外,\(e^{-x}=\sum\limits_{i=0}^{\infty}\frac{(-x)^i}{i!}=\sum\limits_{i=0}^{\infty}(-1)^i\frac{x^i}{i!}\)
    要求每种可重集内部元素个数为奇数,生成函数为 \(\frac{e^x-e^{-x}}{2}=\frac{x^1}{1!}+\frac{x^3}{3!}+\frac{x^5}{5!}+...\)
    要求每种可重集内部元素个数为偶数,生成函数为 \(\frac{e^x+e^{-x}}{2}=1+\frac{x^2}{2!}+\frac{x^4}{4!}+...\)

  • 积性函数 \(\varphi\) \(\mu\) 相关

    • 积性函数的狄利克雷前缀和也是积性函数 : \(s(n)=\sum\limits_{d|n}f(d)=\prod\limits_{i}\sum\limits_{j=0}^{k_i}f(p_i^{j})\)
    • 两个积性函数的狄利克雷卷积也是积性函数 : \(c(n)=\sum\limits_{d|n}a(d)b(\frac{n}{d})=\prod\limits_{i}\sum\limits_{j=0}^{k_i}a(p_i^{j})b(p_i^{k_i-j})\)
    • \(\varphi\) 的性质 : \(n=\sum\limits_{d|n}\varphi(d)\)\(id=\varphi*1\)
    • \(\varphi(ab)=\frac{\varphi(a)\varphi(b)(a,b)}{\varphi((a,b))}\)
    • \(\varphi\)\(\mu\) 的关系 : \(\varphi(n)=\sum\limits_{d|n}\mu(d)\frac{n}{d}\)\(\varphi=\mu*id\)
    • \(\mu\) 的重要性质 : \([n=1]=\sum\limits_{d|n}\mu(d)\)\(\varepsilon=\mu*1\)
    • 在求\(\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{m}[i\perp j]\)\(\mu(d)\)\(d\) 这个因子的容斥系数 : \(\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{m}[i\perp j]=\sum\limits_{d=1}^{min(n,m)}\mu(d)\left\lfloor\frac{n}{d}\right\rfloor\left\lfloor\frac{m}{d}\right\rfloor\)
  • 杜教筛

    我们要求 \(s(n)=\sum\limits_{i=1}^{n}f(i)\)
    已知 \(\sum\limits_{i=1}^{n}\sum\limits_{d|i}f(d)g(\frac{i}{d})=\sum\limits_{i=1}^{n}g(i)\sum\limits_{j=1}^{\frac{n}{i}}f(j)\)
    \(\sum\limits_{i=1}^{n}(f*g)(i)=\sum\limits_{i=1}^{n}g(i)s(\frac{n}{i})\)
    移项 \(s(n)=\frac{\sum\limits_{i=1}^{n}(f*g)(i)-\sum\limits_{i=2}^{n}g(i)s(\frac{n}{i})}{g(1)}\)
    所以我们需要构造 \(g\) ,而且对于一个 \(n\) 能快速求出 \(\sum\limits_{i=1}^{n}(f*g)(i)\) ,一般是 \(\mathcal{O}(1)\)
    线性筛出 \(i\) 较小的 \(f(i)\) ,预处理出 \(s(i)\) \((i \leq \mathcal{O}(n^{\frac{2}{3}}))\),询问时用 \(map\) 记忆化一下,小于 \(n^{\frac{2}{3}}\) 的或者 \(map\) 中有的直接返回,否则递归求解,时间复杂度 \(\mathcal{O}(n^{\frac{2}{3}})\)

  • \(\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{m}\sigma_0(ij)=\sum\limits_{i|n}\sum\limits_{j|m}[i \perp j]\)

posted @ 2021-05-19 20:00  liuzhaoxu  阅读(49)  评论(1编辑  收藏  举报