1. 程式人生 > >莫比烏斯反演題目列表

莫比烏斯反演題目列表

isp href www. inline 個數 方法 一個數 采集 body

前言:

本題表中,凡是涉及\(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)\)

莫比烏斯反演題目列表