Math
1.FWT
1.https://ac.nowcoder.com/acm/contest/5667/E
对于\(i≤19\)每次用卷积异或算答案
对于\(i\geq20\) 有\(ans[i] = ans[i - 2]\)
时间复杂度\(o(n + w\log^2w)\)
2.置换群
1.https://ac.nowcoder.com/acm/contest/5670/E
题目等价于求置换群的最小循环节,即为每个圈的\(lcm\)。
实测NTT + 启发式合并 68ms
3.生成函数
1.https://ac.nowcoder.com/acm/contest/5670/C
\(∏min(𝑎𝑖,𝑏𝑖)\)等于满足 \(𝑐𝑖≤min(𝑎𝑖,𝑏𝑖)\)的\(𝐶\) 数组的个数。
不妨枚举\(\sum 𝑐𝑖=𝑜\) , 我们尝试构造 \(𝑎′𝑖=𝑎𝑖−𝑐𝑖\) ,\(𝑏′𝑖=𝑏𝑖−𝑐𝑖\) .
显然对于每一个不同的 𝑎′,𝑏′数组, 𝑐 都能产生贡献。
也就是说这一部分的答案是这三个数组的方案数相乘。
卡常卡了我1小时差评
时间复杂度\(O(T \times N)\)
2.http://acm.hdu.edu.cn/showproblem.php?pid=6796
枚举高位,剩下的数字每个数字都有一个上限,枚举d出现次数用指数型生成函数计算对应方案数
复杂度\(O(T \times18 ^ 4 \times10)\)
4.组合数学
1.https://ac.nowcoder.com/acm/contest/5671/A
\(f(n)=\sum_{i=2}^{n}\frac{C_{n}^{i} \times (i-1)!\times (n-i)!\times f(i)}{n!}+n\)
化简完\(f(n)=\sum_{i=2}^{n}\frac{f(i)}{i}+n\)
维护前缀和即可
复杂度\((o(n\times\ logn))\)
5.数论分块
1.https://ac.nowcoder.com/acm/contest/5672/H
对\(\frac{(n - 1)}{k}\)和\(\frac{n}{ k}\)分别作数论分块
时间复杂度\(O(\sqrt(k))\)
6.prufer序列
1.http://codeforces.com/problemset/problem/1109/D.
设Tn,k 为n个有标号点分成k个联通块的分割种数,其中节点1,2,3,...k属于不同联通块
2.https://ac.nowcoder.com/acm/problem/210245.
设\(f(i)\)为\(i\)个点组成一棵生成树的贡献有:
设\(g(i)\) 为 \(i\)个点组成森林的方案数有:
设\(dp(i)\)为答案为\(i\)个点尝试的贡献有:
复杂度O(n^2)
使用生成函数\(fft\)可优化至\(O(n\log n\log n)\)
7.同余
1.https://codeforces.com/contest/1389/problem/E
依题意有\((x - y)\times(d - 1)\equiv0(modw)\).我们令\(w_1=\frac{w}{gcd(w, d - 1)}\)
可以得到\(ans =\sum_{i = 1}^{\frac{min(d, m)}{w_1}}m\times n - i \times w_1\)
时间复杂度\(O(T\times\log(w + d))\)
8.polya计数
1.https://ac.nowcoder.com/acm/contest/5673/D
待补据说是一个神仙数学题
9.线性基
1.http://acm.hdu.edu.cn/showproblem.php?pid=6823
我们记由\(f(x) = 0\)生成的解空间为\(M\)。
设\(a_{1,2,...m}\)为\(M\)的基,\(a_{m+1,m+2,...,m+k}\)为\(S-M\)的基
由题目中的三个条件我们可以推出,当且仅当\(m = k\)时存在某种构造方式。我们只需令\(f(a_i) = 0,f(a_{i+m}) = a_i,i=1,2,..,m\)即可。
那么我们如何检验构造是否正确呢。
对于\(f(x) != 0\)时,我们记\(f(x) = y\)我们可以得到\(f(y) = 0\)。
我们可以将\(f(x) x\)放在增广矩阵进行高斯消元,如果得到了\(f(0) = 0\)的情况,显然构造一定是错误的。
考虑\(M\)部分。
我们分离出所有令\(f(x_i) = 0\)的\(x_i\),则由\(x_i\)生成的子空间的基底不应超过m。
同理可考虑\(S-M\)部分。
code
时间复杂度\(O(T\times62)\)
10.莫比乌斯反演
1.http://acm.hdu.edu.cn/showproblem.php?pid=6833
题意
其中 \(f(x)=|\mu(x)|\) 。
思路
令\(d = gcd(a_1,\cdots ,a_x)\)
其中
代入反演公式 \([d==1]=\sum_{i|d}\mu(i)\) 得:
其中
\(h函数可以预处理,g函数可以数论分块.记忆化可过\)
11.矩阵树定理
1.http://acm.hdu.edu.cn/showproblem.php?pid=6836
题意
\(给你一张有n个点m条边的图,定义权值为生成树边的与,求任取一棵生成树的权值的数学期望\)
思路
\(将边权按位拆开,生成树边的与为一即为该生成树所有边权为1,我们可以把边权是否为1定义该生成树是否联通,跑矩阵树定理求得的生成树个数即为权值\)