前言:
本题表中,凡是涉及\(n、m\),都默认\(n \leq m\)。
Part1
这些题目都非常水,莫比乌斯反演入门题,
主要是对莫比乌斯反演应用有一个基本概念。
1.[HAOI2011]Problem b
(具体题目戳我)
题目:一组数据(\(a、d、c、d \leq 5×10^4\))求
\[\sum_{i=a}^{b} \sum_{j=c}^d [gcd(i,j)=d]\]
题解:
\[\sum_{i=1}^{n} \sum_{j=1}^m [gcd(i,j)=d] = \sum_{i=1}^{\lfloor \frac{n}{d} \rfloor} \sum_{j=1}^{\lfloor \frac{m}{d} \rfloor} [gcd(i,j)=1] = \sum_{i=1}^{\lfloor \frac{n}{d} \rfloor} \mu(i)\lfloor \frac{\lfloor \frac{n}{d} \rfloor}{i} \rfloor * \lfloor \frac{\lfloor \frac{m}{d} \rfloor}{i} \rfloor\]
数论分块,然后二维容斥即可。
2.[NOI2010]能量采集
(具体题目戳我)
题目:一组数据(\(n、m \leq 10^5\)),求
\[2*\sum_{i=1}^n \sum_{j=1}^m gcd(i,j) - n*m\]
题解:
\[\sum_{i=1}^n \sum_{j=1}^m gcd(i,j) =\sum_{d=1}^nd \sum_{i=1}^{\lfloor \frac{n}{d} \rfloor} \sum_{j=1}^{\lfloor \frac{m}{d} \rfloor} [gcd(i,j)=1] \]
枚举\(d\),然后用第1题的方法搞即可。
3.Gcd
(具体题目戳我)
题目:一组数据,给定整数\(N(N\leq10^7)\),求\(1 \leq x,y \leq N\)且\(Gcd(x,y)\)为素数的组数
题解:
\[\sum_{i=1}^n \sum_{j=1}^m gcd(i,j) =\sum_{d=2}^{d \leq n} d\sum_{i=1}^{\lfloor \frac{n}{d} \rfloor} \sum_{j=1}^{\lfloor \frac{m}{d} \rfloor} [gcd(i,j)=1] \]
枚举素数\(d\),然后用第1题的方法搞即可。
4.[中山市选2011]完全平方数
(具体题目戳我)
题目:\(50\)组数据,给出\(k\),求第\(k\)个不是完全平方数的倍数的数是多少。\(k \leq 10^9\)
题解:
先二分一个\(n\),然后检查\(n\)下面有多少个非完全平方数。计算方法为:
设\(f(i)\)表示只为\(i^2\)倍数,并且不是其它平方数倍数的数的个数。
那么令\(F(i) = f(i)+f(2i)+....+f(ki)\),即为\((ri)^2\)倍数的数的个数。
那么\(F(i) = \sum_{i|d} f(d)\)。显然\(F(n) = \lfloor \frac{n}{i^2} \rfloor\)
反演一下:
\[f(1) = \sum_{i=1}^n \lfloor \frac{n}{i^2} \rfloor\]
直接数论分块即可得到一个数\(n\)的排名\(f(1)\)。