Problem. I

题意简述:

求出长度为\(n\)的满足\(a_1=2,\max(\sqrt[i]{a_i})<\min(\sqrt[i]{a_i+1})\)的正整数序列\(\{a\}\)的个数。
答案对\(1000000007\)取模。

数据范围:

\(n\le10^{10}\)

解法:

固定\(x=\max(\sqrt[i]{a_i})\),那么\(a_i\)需要满足\(\sqrt[i]{a_i}\le x<\sqrt[i]{a_i+1}\)\(a_i\in(x^i-1,x^i]\),显然合法的取值有且仅有一种。
那么现在我们将问题转化为了求\(\max(\sqrt[i]{a_i})\)的取值数。
\(f_i\)表示第\(i\)个位置贡献的方案数,那么答案就是\(\sum\limits_{i=1}^nf_i\)
根据\(a_1\)的限制,我们知道\(a_i\in[2^i,3^i)\)
但是显然\(f_i\le3^i-2^i\),因为某些\(\sqrt[i]{a_i}\)会在\(\sqrt[j]{a_j}(j<i)\)处被计算,我们钦定相等的值的贡献在最小的\(i\)处计算。
注意到\(\sqrt[i]{a_i}=\sqrt[j]{a_j}\Leftrightarrow a_i=a_j^{(\frac ij)}\),因为\(a_i,a_j\in\mathbb N\),所以\(j|i\)
那么记\(g_n=3^n-2^n\),可以得到\(f*I=g\),杜教筛即可。

posted @ 2020-02-25 19:15  Shiina_Mashiro  阅读(119)  评论(0编辑  收藏  举报