感觉很套路? #include <bits/stdc++.h> #define ll long long #define setIO(s) freopen(s".in","r",stdin) using namespace std; const int mod=998244353,G=3,SI=2000005; inline int qpow(int x,int y) { ll tmp=1; for(;y;y>>=1,x=1ll*x*x%mo…
原文链接https://www.cnblogs.com/zhouzhendong/p/UOJ450.html 题解 首先有一个东西叫做“单位根反演”,它在 FFT 的时候用到过: $$\frac 1 n \sum_{i=0}^{n-1} \omega_n ^{d\cdot i} = [d|n]$$ 其中 $\omega_n$ 表示 $n$ 次单位根. 接下来我们回到本题. 我们来搞一个指数生成函数,第 i 项表示总共复读 i 次,使得一个复读机开心的方案. $$f(x) = \sum_{i\ge…
数学杂烩总结(多项式/形式幂级数+FWT+特征多项式+生成函数+斯特林数+二次剩余+单位根反演+置换群) 因为不会做目录所以请善用ctrl+F 本来想的是笔记之类的,写着写着就变成了资源整理 一些有的没的的前置 导数 \(f'(x)=\lim\limits_{\triangle x\rightarrow 0}\frac{f(x+\triangle x)-f(x)}{\triangle x}\) \(\sin x:\cos x\) \(\cos x:-\sin x\) \(\ln x:\frac{…
题面 传送门 题解 首先你要知道一个叫做单位根反演的东西 \[{1\over k}\sum_{i=0}^{k-1}\omega^{in}_k=[k|n]\] 直接用等比数列求和就可以证明了 而且在模\(998244353\)意义下的\(\omega_k^1=g^{P-1\over k}\) 据说这玩意儿在\(NTT\)的证明里有?然而我那时候光顾着背板子了 所以这个单位根反演简称小单的玩意儿能干嘛呢 然后我们惊奇的发现小单可以让我们快速求一个数列里某个数倍数项的和 \[ \begin{align…
正题 题目链接:https://loj.ac/p/6247 题目大意 给出\(n,k\)求 \[\sum_{0\leq i\leq n,i|k}\binom{n}{i} \] 对\(998244353\)取模 \(1\leq n\leq 10^{15},1\leq k\leq 2^{20},k=2^p(p\in N)\) 解题思路 随便找的一题竟然是单位根反演,不过很基础而且很裸. 首先单位根反演的式子\([i|k]=\frac{1}{k}\sum_{j=0}^{k-1}\omega_k^{i\…
题意:求 \[ \sum_{i=0}^n[k|i]\binom{n}{i}Fib(i) \] 斐波那契数列有简单的矩阵上的通项公式\(Fib(n)=A^n_{1,1}\).代入得 \[ =\sum_{i=0}^n[k|i]\binom{n}{i}A^i_{1,1} \] 由单位根反演, \[ =\sum_{i=0}^n\frac{1}{k}\sum_{j=0}^{k-1}w_k^{ij}\binom{n}{i}A^i_{1,1} \] 注意到后面多项与\(i\)有关,考虑将\(i\)贬到后面去.…
题目分析: 这题的目标是求$$ \sum_{i \in [0,n),k \mid i} \binom{n}{i}G^i $$ 这个形式很像单位根反演. 单位根反演一般用于求:$ \sum_{i \in [0,n),k \mid i} \binom{n}{i}f(x)^i $ 推理过程略,实际上也就是交换求和符号的事情. 接着就变成裸的矩阵快速幂了 代码: #include<bits/stdc++.h> using namespace std; int m,k,p;long long n; in…
原文链接 https://www.cnblogs.com/cly-none/p/UOJ450.html 题意:请自行阅读. 考虑用生成函数来表示答案.因为秒之间是有序的,所以这应当是个指数生成函数.故答案就是 \[ [x^n] \left( \sum_{i \geq 0} \frac {x^i} {i!} [d | i] \right)^k \] 突破口显然是在\([d|i]\)上. 于是考虑使用单位根反演.也就是 \[ \frac {1} {n} \sum_{i=0}^{n-1} \omega…
[UOJ#450][集训队作业2018]复读机(生成函数,单位根反演) 题面 UOJ 题解 似乎是\(\mbox{Anson}\)爷的题. \(d=1\)的时候,随便怎么都行,答案就是\(k^n\). \(d=2\)的时候,可以做一个\(dp\),设\(f[i][j]\)表示前\(i\)个复读机选了\(j\)个时间的方案数. 然后枚举当前这个复读机复读的次数,得到: \[f[x][j]=\sum_{i=0}^{j}[2|i]{n-j+i\choose i}f[x-1][j-i]\] 化简啥的之后…
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3328 单位根反演主要就是有 \( [k|n] = \frac{1}{k}\sum\limits_{i=0}^{k-1}w_{k}^{i*n} \) 如果 k | n ,转 n 下就会是 1 :不然用等比数列求和公式可知是 0 . 一般是构造一个 \( f(x) = ( 1+x )^n \) 之类的,来求含有组合数的式子.比如 \( \sum\limits_{i=0}^{n}C_{n}^{i…