「考试」省选16

今天的题打的不是很好。

T1
一个莫比乌斯反演。
直接推了。
我退的很麻烦。

\[\begin{aligned} ans&=\sum\limits_{d=1}^{a}\sum\limits_{i=1}^{\frac{n}{d}}\sum\limits_{j=1}^{\frac{m}{d}}[gcd(i,j)=1]lcm(i,j)\\ &=\sum\limits_{d=1}^{a}d\sum\limits_{i=1}^{\frac{n}{d}}\sum\limits_{j=1}^{\frac{m}{d}}\sum\limits_{g|gcd(i,j)}\mu(g)\frac{ij}{gcd(i,j)}\\ &=\sum\limits_{d=1}^{a}d\sum\limits_{g=1}^{\frac{n}{d}}\mu(g)g\sum\limits_{l=1}^{\frac{n}{dg}}l\sum\limits_{i=1}^{\frac{n}{dgl}}\sum\limits_{j=1}^{\frac{m}{dgl}}ij\sum\limits_{r|gcd(i,j)}\mu(r)\\ &=\sum\limits_{d=1}^{a}d\sum\limits_{g=1}^{\frac{n}{d}}\mu(g)g\sum\limits_{l=1}^{\frac{n}{dg}}l\sum\limits_{r=1}^{\frac{n}{dg}}\mu(r)r^2R_{\frac{n}{dglr}\frac{n}{dglr}}\\ &=\sum\limits_{d=1}^{a}d\sum\limits_{T=1}^{\frac{n}{d}}TR_{\frac{n}{dT}\frac{m}{dT}}[T=1]\\ &=\sum\limits_{d=1}^{a}dR_{\frac{n}{d}\frac{m}{d}}\\ \end{aligned}\]

然后直接用类似数表的数据结构来搞的方式就可以了。

T2
平面图转对偶图。
如果再对偶图中一条边是自环
那么就会造成生成新的连通块。
这样直接用并查集维护连通性即可。
建对偶图仍然可以用并查集维护。
然后查询连通性操作就用启发式分裂。
分开扫两个集合。
扫到较小的那个就停止。

T3
一个打表出奇迹的题。
我考场上打出了结论。
答案是:

\[ans=\frac{F(n+m)}{F(n)F(m)} \]

\[F(n)=\prod\limits_{i=1}^{n}(q^i-1) \]

但是这里还是不能直接暴力算。
因为有可能出现\(q^{phi}-1\equiv 0(mod\ p)\)的情况。
这时候我们暴力的求出来这个\(phi\)就行了。
可以证明这个循环节比欧拉函数要小。
然后一些诡异的推式可以分开\(q^{phi}-1\)的贡献和其他的贡献。
这个东西取模之后是0所以不能直接算。
其他的部分可以直接算出来。
考虑抽出\(q^{phi}-1\)\(p\)因子。
抽出来之后发现是\(p\)的因子乘阶乘的方式,而这里暂时认为上下的其他部分可以消掉(因为不能消掉的概率是\(\frac{1}{p^2}\)随机数据下)
所以直接暴力求出阶乘和其含有的\(p\)因子即可。
这样复杂度就是\(O(qlog^2(1e9))\)的。

posted @ 2020-02-02 22:05  Lrefrain  阅读(97)  评论(0编辑  收藏  举报