龙哥的问题
这一篇主要是讲一下怎么计算复杂度
考虑贡献的思想不说了,太常见了
如果我们要硬算\(phi(\frac{n}{k})\),其中\(k<\sqrt n\),感觉算上外层枚举\(n\)的约数那层循环,好像时间复杂度是\(O(\sqrt n \cdot \sqrt n)=O(n)\)
但实际上我们在算枚举约数的那层循环一定不要这么算,我们一定要这么算:\(10^9\)以内的自然数中约数个数最多的只有\(1536\)个约数
按这个算的话,就是千万级别的复杂度了
然后看下这篇题解对算欧拉函数的处理
他是先预处理出质数,然后通过已经处理过的质数去看\(N\)的质因数,确实会加快一点

浙公网安备 33010602011771号