时空穿梭

今天早上考了个mobius反演,我以前做了很多和mobius反演有关的题目,但是今天由于推错公式+忘记杜教筛获得了1分的好成绩。所以要复习一下mobius反演。

枚举相邻最远的两点的坐标差,设为向量t,则满足这个坐标差的向量组数是

在向量t对应的线段上,有gcd(t1,t2,...tn)+1个整点,因为首尾固定,所以内部的点共有

种选法。

所以答案就是

用c代替c-2,mobius反演一下,得到

看上去化简不了,但是因为乘法分配律,如果枚举v[i]的值,则可以提取公因式,得到

实际上,这个式子后面展开以后就是原来的式子。

枚举de得到

实际上,后面的公因式可以提取出来。变成两个独立的部分。设为g_c

后面的c关于d是个固定的单变量函数。可以对每个c进行预处理。

前面的式子设为F_i,如果把高斯求和化简得到

当floor(m[i]/d)固定时,n个线性函数的乘积是个不超过n次的多项式

根据莫反的知识,向量

的取值是nsqrt(m)的。设

所以

处理出gc(x)x^i的前缀和。这样子在计算的时候可以使用多项式单点求值O(n)计算。

原文地址:https://www.cnblogs.com/cszmc2004/p/12995556.html