果然有时候还是得老老实实地用莫比乌斯反演公式(即函数反演)来做比较好。
设 f(x)=n∑i=1n∑j=1[gcd(i,j)=x][abi=baj],F(x)=n∑i=1n∑j=1[x|gcd(i,j)][abi=baj]。
显然所求即 f(1)=n∑i=1μ(i)F(i)。
然后只要求出 F 即可。
有 F(x)=n∑i=1n∑j=1[x|gcd(i,j)][abi=baj]=∑x|i∑x|j[abi=baj]
然后就是喜闻乐见的枚举倍数环节,同时开个桶统计一下即可。
代码:
1 |
|
果然有时候还是得老老实实地用莫比乌斯反演公式(即函数反演)来做比较好。
设 f(x)=n∑i=1n∑j=1[gcd(i,j)=x][abi=baj],F(x)=n∑i=1n∑j=1[x|gcd(i,j)][abi=baj]。
显然所求即 f(1)=n∑i=1μ(i)F(i)。
然后只要求出 F 即可。
有 F(x)=n∑i=1n∑j=1[x|gcd(i,j)][abi=baj]=∑x|i∑x|j[abi=baj]
然后就是喜闻乐见的枚举倍数环节,同时开个桶统计一下即可。
代码:
1 | #include <cstdio> |
Related Issues not found
Please contact @Alpha1022 to initialize the comment