【SDOI2017】套路总结
1
第一题是裸的反演;
\[\begin{align}
Ans&=\prod_{i=1}^n\prod_{j=1}^ma[(i,j)]\\
&=\prod_{d=1}^na[d]^{f(d)}\\
f(d)&=\sum_{i=1}^{\lfloor\frac{n}{d}\rfloor}\lfloor\frac{n}{id}\rfloor\lfloor\frac{m}{id}\rfloor\mu(i)
\end{align}\]
考虑更换为枚举\(i*d\),
那么就有,
\[\begin{align}
Ans&=\prod_{k=1}^n\sum_{d|k}a[d]^{\lfloor\frac{n}{k}\rfloor\lfloor\frac{m}{k}\rfloor\mu(\frac{k}{d})}\\
&=\prod_{k=1}^n(\sum_{d|k}a[d]^{\mu(\frac{k}{d})})^{\lfloor\frac{n}{k}\rfloor\lfloor\frac{m}{k}\rfloor}
\end{align}\]
显然,我们可以预处理\((\sum_{d|k}a[d]^{\mu(\frac{k}{d})})\),于是就能分块做了。
2
如果一个结点与其父亲颜色不同,就给他打上标记1。
3
至少存在一个=存在=所有-不存在;
我们用dp来进行序列计数,\(f[i][j]\)表示前i个数的前缀和%p的值为j的方案数。
显然可以矩阵乘法。