首页 > 其他分享 >CF915G

CF915G

时间:2023-09-09 10:56:37浏览次数:41  
标签:lfloor log limits dfrac sum rfloor CF915G

题目链接

description

\(f_k(x)\) 表示所有长度为 \(x\) ,元素取值范围为 \([1,k]\) 中的整数的序列 \(\{a\}\),满足 \(\gcd(a_1,a_2,\dots,a_x)=1\) 的序列的个数。

给定 \(n,k\leq 2\times 10^6\)

分别 求出 \(f_1(n),f_2(n),\dots ,f_k(n)\)。

模大质数

3.50 s

256 MiB

solution

推式子得,

\(f_k(n)=\sum\limits_{i=1}^k\mu(i)(\lfloor\dfrac{k}{i}\rfloor)^n\)。

暴力计算是 \(O(\sum\limits^k\sqrt{i})=O(k\sqrt{k})\) 的。

考虑如何优化。

注意到只有 \(i\mid k+1\) 时,\(\lfloor\dfrac{k}{i}\rfloor\) 较 \(\lfloor\dfrac{k+1}{i}\rfloor\) 的值会改变。

于是可以得出递推式 \(f_k(n)=f_{k+1}(n)-\sum\limits_{p\mid k+1}\mu(p)((\lfloor\dfrac{k+1}{p}\rfloor)^n-(\lfloor\dfrac{k}{p}\rfloor)^n)\)

后面的东西可以 \(O(k\log nk)\) 预处理出来。

总共的时间复杂度 \(O(k\log nk)\)

可以过掉本题(有点卡常)。

使用狄利克雷前缀和以及线性筛求自然数 \(n\) 次幂可以把复杂度降到 \(O(k\log\log k)\)。

不过我现在不会狄利克雷前缀和,就没有这样做。

hint

本题需要注意到 \(f_{k}\) 和 \(f_{k+1}\) 取值不同的点有哪些。

code

参考代码:Submission #222532210 - Codeforces

标签:lfloor,log,limits,dfrac,sum,rfloor,CF915G
From: https://www.cnblogs.com/FreshOrange/p/17689022.html

相关文章

  • CF915G Coprime Arrays 题解
    题意给定\(n,k\),对于所有的\(m\in\left[1,k\right]\),求长度为\(n\),值域为\(\left[1,m\right]\)且最大公约数为\(1\)的序列种数,对\(10^9+7\)取模。(\(1\len,k\le2\times10^6\))。题解设\(f(d,m)\)表示长度为\(n\),值域为\(\left[1,m\right]\)且最大......