# DZY Love Math 系列

DZY Love Math 系列

[BOZJ3309] DZY Loves Math

顺着套路就能得到:(Ans = sum_{T=1}lfloor frac{n}{T} floor lfloor frac{m}{T} floor sum_{d|T} f(d) mu(frac{T}{d}))
问题变为求(sum_{d|T} f(d) mu(frac{T}{d}))
你可以见这里
你还可以见这里
然而我就是要再写一遍你管我QwQ......
(T = prod_{i=1}^K p_i^{a_i})(d = prod_{i=1}^Kp_i^{b_i}),显然有(a_ige b_i),看到(mu)显然(|a_i-b_i|leq 1)才有意义。
若存在(a_i>a_j),则(b_ige b_j),所以(b_j)可以操控符号,即(f(d) = 0)
否则说明(a_1=a_2...=a_K),显然只有当(b_i=a_i-1)对所有(i)都成立时,(f)的绝对值大小不一样。
所以(f(d) = (-1)^{K+1}),记一下最小质因子和每个数包含的不同质因子数,然后就能线性筛(f)了。

[BZOJ3462] DZY Loves Math II

把可用质数(p)弄出来,不同的(p)不会超过(7)个,那么就是求(sum_{i=1}^K c_i p_i = n)的合法(c_i)组的个数。
由于(p_i|S),所以把方案按照(c_i\% frac{S}{p_i})后的结果分组,然后背包处理((S-1)(K+1))以内的答案。
每次枚举模后方案的答案(tS + n\% S),然后设还需要(x)(S),插板分配到(K)个质数中即可。

[BZOJ3481] DZY Loves Math III

用扩欧那套理论可得:(Ans = sum_{x=1}^{P} gcd(x,P) [gcd(x,P)|Q])
枚举(d = gcd(x,P))(Ans = sum_{d|P,d|Q} dvarphi(frac{P}{d}))
(Q' = gcd(P,Q))(Ans = sum_{d|P} d[d|Q']varphi(frac{P}{d}) = sum_{d|Q'} dvarphi(frac{P}{d}))
被小胖坑过的童鞋应该都能立刻反应过来这是狄利克雷卷积,只要算每个质因子的答案即可。
枚举一个质因子(p),设(P)中有(a)个,(Q')中有(b)个。
(a > b)(ans(p) = (b + 1)(p-1)p^{a-1}),若(a=b)(ans(p) = b(p-1)p^{a-1} + p^a)
大数分解质因数用一下(Miller-Rabin)(Pollard-Rho)就行了。

[BZOJ3512] DZY Loves Math IV

枚举一个(n),然后要算(S(n,m) = sum_{i=1}^m varphi(in))
(d = gcd(i,n))
顺着套路展开:(S(n,m) = sum_{i=1}^m varphi(i)varphi(frac{n}{d})d = sum_{i=1}^m varphi(i) varphi(frac{n}{d}) sum_{e|d} varphi(e))
后面两个玩意合并不了,不过很好解决。
我们设(n'y = n),其中(n')(n)的每个质因子各取一个构成的数,(d' = gcd(i,n'))
(S(n,m) = ysum_{i=1}^m varphi(i) varphi(frac{n'}{d'})sum_{e|d'}varphi(e))
那么此时有(frac{n'}{d'} perp e)
(S(n,m) = ysum_{i=1}^m varphi(i) sum_{e|d'}varphi(frac{n'}{e}) = ysum_{i=1}^m varphi(i) sum_{e|n',e|i} varphi(frac{n'}{e}))
(S(n,m) = ysum_{e|n'} varphi(frac{n'}{e}) sum_{i=1}^{lfloor frac{m}{e} floor} varphi(ie) = ysum_{e|n'} varphi(frac{n'}{e})S(e,lfloor frac{m}{e} floor))
递归做,(n = 1)时杜教筛求(varphi)前缀和即可。

[BZOJ3560] DZY Loves Math V

明摆着是叫你算每一个质因子的贡献,然后把它们都乘起来。
考虑欧拉函数(varphi(p^t) = (p-1) p^{t-1})
所以每一个质因子的贡献为((prod_{i=1}^n (sum_{j=0}^{c_i} p^j) - 1) (p-1) + 1),乘起来就行了。

[BZOJ3561] DZY Loves Math VI

顺着套路推(设(nleq m)),可以得到:
(Ans = sum_{T=1}^{n} (sum_{i=1}^{lfloor frac{n}{T} floor} i)(sum_{j=1}^{lfloor frac{m}{T} floor} j) sum_{e|T} (frac{T}{e})^{frac{T}{e}} mu(e) e^{2(frac{T}{e})}),暴力算即可。

原文地址:https://www.cnblogs.com/GuessYCB/p/10355769.html