AT_abc370_g Divisible by 3题解
设 \(f(x)\) 表示积为 \(x\) 的序列个数,注意到 \(f\) 是一个积性函数,且显然有:\(f(p^k)=\binom{m+k-1}{m-1}\),如果这道题没有要求成积为好的,那么直接套上 Min25 筛板子即可,考虑如何做积为好的。
一个数的约数之和可以拆到每个质因子上,只要有一个质因子合法那么整个数就是合法的,但这样就不是积性函数了,考虑用总方案减去不合法方案,总方案数已经解决了,定义函数 \(g(x)\),当 \(x\) 是好的时,\(g(x)=0\),否则 \(g(x)=f(x)\),这个函数显然也是积性函数,那么套 Min25 板子即可。
接下来考虑一下 Min25 筛具体的如何实现(此题的实现与模板有一些不同,大佬可以跳过),在求开始的质数点函数值前缀和时,我们定义积性函数 \(h(x)=[x\not\equiv 2\pmod 3]\),然后统计这个函数的前缀和,注意到在质数点时 \(h(x)\cdot m\) 是等于 \(g(x)\),从而这个函数是对的,剩下的部分和模板也大差不差了。

浙公网安备 33010602011771号