P1447 [NOI2010]能量采集

P1447 [NOI2010]能量采集

显然,我们要求(sumlimits_{i=1}^nsumlimits_{i=1}^m 2*(gcd(i,j)-1)+1=sumlimits_{i=1}^nsumlimits_{i=1}^m 2*gcd(i,j)-1)

不懂的话看这张图慢慢理解吧

解法一

容斥原理

设函数(f(x))(gcd(i,j)=x)的对数个数

设函数(g(x))为有公因数x的((i,j))对数个数(i,j)的个数,则(g(x)=(n/x)*(m/x))

而我们要求的是实际上是(f(x)),而(g(x))其中有一些(gcd(i,j)=kd),对于这些,我们要减掉

于是最终(f(x)=(n/x)*(m/x)-sumlimits_{2x<=ix<=min(n,m)}f(i*x))

原文地址:https://www.cnblogs.com/y2823774827y/p/10214875.html