2020 Multi-University Training Contest 6 - 1007. A Very Easy Math Problem(莫比乌斯反演)
题意:给你一个T,x,k,表示有T次询问,每次询问给你一个n,求:
$$\sum_{a_1=1}^{n}\sum_{a_2=1}^{n}\ldots \sum_{a_x=1}^{n}\left (\prod_{j=1}^{x}a_j^k\right )f(\gcd(a_1,a_2,\ldots ,a_x)) * \gcd(a_1,a_2,\ldots ,a_x)$$
其中,如果x有平方因子,则f(x)=0,否则f(x)=1,$T\leq 10^4,1\leq k\leq 10^9,1\leq x\leq 10^9,1\leq n\leq 2\times 10^5$
思路:先考虑一下f(x)的求法,将x质因子分解后,如果某一个质数的幂次$\geq 2$,那么x一定有平方因子,那么f(x)=0,并且由莫比乌斯函数的定义有$\mu(x)=0$,当f(x)=1时,$\mu(x)=1$或者$\mu(x)=-1$,所以可以得到$f(x)={\mu(x)}^2$
$$\sum_{a_1=1}^{n}\sum_{a_2=1}^{n}\ldots \sum_{a_x=1}^{n}\left (\prod_{j=1}^{x}a_j^k\right )f(\gcd(a_1,a_2,\ldots ,a_x)) * \gcd(a_1,a_2,\ldots ,a_x)$$
令$\gcd(a_1,a_2,\ldots ,a_x)=d$
$$\sum_{a_1=1}^{n}\sum_{a_2=1}^{n}\ldots \sum_{a_x=1}^{n}\left (\prod_{j=1}^{x}a_j^k\right )f(d) * d [\gcd(a_1,a_2,\ldots ,a_x)==d]$$
把d提到最前面
$$\sum_{d=1}^{n} \sum_{a_1=1}^{\frac{n}{d}}\sum_{a_2=1}^{\frac{n}{d}}\ldots \sum_{a_x=1}^{\frac{n}{d}}(a_1 \cdots a_x)^k * f(d) * d * d^{kx} [\gcd(a_1,a_2,\ldots ,a_x)==1]$$
运用反演公式
$$\sum_{d=1}^{n} \sum_{a_1=1}^{\frac{n}{d}}\sum_{a_2=1}^{\frac{n}{d}}\ldots \sum_{a_x=1}^{\frac{n}{d}}(a_1 \cdots a_x)^k * f(d) * d * d^{kx} * \sum_{j \mid gcd} \mu(j)$$
同样的,把j提到前面
$$\sum_{d=1}^{n} \sum_{j=1}^{\frac{n}{d}} \sum_{a_1=1}^{\frac{n}{dj}}\sum_{a_2=1}^{\frac{n}{dj}}\ldots \sum_{a_x=1}^{\frac{n}{dj}}(a_1 \cdots a_x)^k * f(d) * d * d^{kx} * j^{kx} * \mu(j)$$
由于$\sum_{a_1=1}^{\frac{n}{dj}}\sum_{a_2=1}^{\frac{n}{dj}}\ldots \sum_{a_x=1}^{\frac{n}{dj}}(a_1 \cdots a_x)^k={[1^k+2^k+\cdots + (\frac{n}{dj})^k]}^x$
$$\sum_{d=1}^{n} \sum_{j=1}^{\frac{n}{d}} \mu(j) * (dj)^{kx} * f(d) * d * {[1^k+2^k+\cdots + (\frac{n}{dj})^k]}^x$$
令T=dj
$$\sum_{T=1}^n \sum_{j \mid T} \mu(j) * T^{kx} * f(\frac{T}{j}) * \frac{T}{j} * {[1^k+2^k+\cdots + (\frac{n}{dj})^k]}^x$$
令$g(T)=\sum_{j \mid T} \mu(j) * T^{kx} * f(\frac{T}{j}) * \frac{T}{j}$
枚举j的倍数预处理g(T),直接预处理${[1^k+2^k+\cdots + (\frac{n}{dj})^k]}^x$
每次询问的时候对n数论分块,时间复杂度$T\sqrt n+nlogn$
1 |
|