Problem. M

题意简述:

有一个\(m\)进制的数系,这个数系中的数没有前导\(0\)
对于一个数,假设它的最高位为\(x\),如果存在相邻的两位,满足高位为\(x\)低位为\((x+1)\bmod m\),那么这个数是不合法的。
现在给定\(n\),求有多少对\(1\le i\le j\le n\)满足在这个数系中\(i\)位数的个数和\(j\)位数的个数的最大公约数不大于\(m\)

数据范围:

\(n,m\le10^{12},m\ge2\)

解法:

首先不难发现\(m=2\)时答案为\({n+1\choose 2}\)

\(\text{Part.1}\)

最高位有\(m-1\)种可能,而且这\(m-1\)种情况下的数的个数都是相同的。
因此我们强制最高位为\(1\),设数系中有\(f_n\)\(n\)位数,那么我们要求的就是:

\[\sum\limits_{i=1}^n\sum\limits_{j=1}^i[f_i\perp f_j] \]

\(\text{Part.2}\)

我们可以很轻松地推出\(\{f_n\}\)的递推式:

\[f_0=0,f_1=1,f_2=m-1,f_n=mf_{n-1}-f_{n-2}(n\ge3) \]

注意到\(f_2\ne mf_1-f_0\),考虑构造一个第二项即可满足递推公式的数列。
\(g=\sum f\),利用数学归纳法不难证明\(\{g_n\}\)的递推式:

\[g_0=0,g_1=1,g_n=mg_{n-1}-g_{n-2}(n\ge2) \]

\(\{g_n\}\)的特征方程为\(x^2-mx+1=0\),设\(\Delta=m^2-4,\alpha=\frac{m+\sqrt{\Delta}}2,\beta=\frac{m-\sqrt{\Delta}}2\)
我们可以得到\(\{g_n\}\)的通项公式:

\[g_n=\frac1{\sqrt{\Delta}}(\alpha^n-\beta^n) \]

\(\text{Part.3}\)

\(\{g_n\}\)有如下性质:

性质\(1\):$$g_{i+j}=g_ig_{j+1}-g_{i-1}g_j$$

证:
根据通项公式爆算即可。

性质\(2\):$$\gcd(g_i,g_j)=g_{\gcd(i,j)}$$

证:
不妨设\(j\ge i\)
先证\(\gcd(g_n,g_{n+1})=1\)
考虑归纳,\(n=0\)时命题显然成立。
\(n\ge1\)时,\(\gcd(g_n,g_{n+1})=\gcd(g_n,g_{n-1})=1\),命题成立。
因此我们有\(\gcd(g_i,g_j)=\gcd(g_i,g_ig_{j-i+1}+g_{i-1}g_{j-i})=\gcd(g_i,g_{j-i})\)
不难发现这就是更相减损法的过程,原命题成立。

\(\text{Part.4}\)

现在考虑用\(\{g_n\}\)的性质推出\(\{f_n\}\)的性质。

性质\(1\):$$\gcd(f_i,g_i)=1$$

证:
\(\gcd(f_i,g_i)=\gcd(g_i-g_{i-1},g_i)=1\),命题成立。

性质\(2\):$$\gcd(f_i,f_j)=\gcd(f_i,g_{j-i})$$

证:
不妨设\(j\ge i\)
\(f_{i+1}\equiv mf_i-f_{i-1}\equiv-f_{i-1}\pmod{f_i}\)
\(f_{i+2}\equiv mf_{i+1}-f_i\equiv-mf_{i-1}\pmod{f_i}\)
因此\(f_{j}\equiv-g_{j-i}f_{i-1}\pmod{f_i}\)
那么\(\gcd(f_i,f_j)=\gcd(f_i,-g_{j-i}f_{i-1})\)
因为\(\gcd(f_i,f_{i-1})=1\),所以\(\gcd(f_i,f_j)=\gcd(f_i,g_{j-i})\),命题成立。

性质\(3\):$$\gcd(f_i,f_j)=f_{\frac{\gcd(2i-1,2j-1)+1}2}$$

证:
考虑构造一个序列\(\{h_n\}\),满足\(h_{2n}=g_n,h_{2n-1}=f_n\),现在我们要证明\(\gcd(h_r,h_t)=h_{\gcd(r,t)}\),很显然这是原命题的充分条件。
对于\(r,t\)奇偶性相同的情况我们不难证明其正确性。
因此我们只考虑\(r,t\)奇偶性不同的情况,不妨设\(r=2i-1,t=2j\)
\(i\le j\),设\(j=i+k\),那么我们此时要证的就是\(\gcd(f_i,g_{i+k})=\gcd(f_i,f_{k+1})\)

\[\begin{aligned} &\gcd(f_i,g_{i+k})\\ =&\gcd(f_i,g_ig_{k+1}-g_{i-1}g_k)\\ =&\gcd(f_i,g_if_{k+1}+g_kf_i)\\ =&\gcd(f_i,g_if_{k+1})\\ =&\gcd(f_i,f_{k+1}) \end{aligned} \]

\(i<j\),设\(i=j+k\),那么我们此时要证的就是\(\gcd(g_j,f_{j+k})=\gcd(g_j,f_k)\)

\[\begin{aligned} &\gcd(g_j,f_{j+k})\\ =&\gcd(g_j,g_jg_{k+1}-g_{j-1}g_k-g_jg_k+g_{j-1}g_{k-1})\\ =&\gcd(g_j,g_jf_{k+1}-g_{j-1}f_k)\\ =&\gcd(g_j,f_k) \end{aligned} \]

因此命题成立。

\(\text{Part.5}\)

因此\(f_i\perp f_j\Leftrightarrow 2i-1\perp2j-1\)

\[ans=\sum\limits_{i=1}^n\sum\limits_{j=1}^i[2i-1\perp2j-1]=1+\frac12\sum\limits_{i=2}^n\varphi(2i-1)=1+\frac12\sum\limits_{i=2}^{2n}[2\nmid i]\varphi(i) \]

直接zzt筛可以做到\(O(\frac{n^{\frac23}}{\log n})\)的时间复杂度。

posted @ 2020-05-10 15:16  Shiina_Mashiro  阅读(177)  评论(0编辑  收藏  举报