今天早上考了个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)计算。