Day 2
上午听dls讲数据结构,下午现学现用搞会了一个启发式合并。晚上就被上帝整去了div1。
题解:考虑每个元音字母的贡献,然后统计。
Day3
就做了一个换根DP,还不是正解。又死在筛法上,学了这么多都不知道什么时候可以不落后其他银牌队伍这种题。
Problem D. 求和
题意:令 (f(n) = sumlimits^n_{i=1}sumlimits^n_{j=1} gcd(i,j,n)) ,求 $F(n) = sumlimits^n_{i=1} f(i) $
请输出答案对 (mod) 取模的值。保证 (mod) 是个质数。 ((1 leq n leq 10^9, mod leq 10^9 + 9))
题解:
[f(n) = sumlimits^n_{i=1}sumlimits^n_{j=1} gcd(i,j,n)
]
枚举 (g) :
[f(n) = sumlimits^n_{g=1} g sumlimits^n_{i=1}sumlimits^n_{j=1} [gcd(i,j,n)==g]
]
显然, (g) 是 (n) 的倍数, (i) 和 (j) 都是 (g) 的倍数,那么一起除掉 (g) :
[f(n) = sumlimits_{g|n} g sumlimits^{frac{n}{g}}_{i=1} sumlimits^{frac{n}{g}}_{j=1} [gcd(i,j,frac{n}{g})==1]
]
莫比乌斯反演:
[f(n) = sumlimits_{g|n} g sumlimits^{frac{n}{g}}_{i=1} sumlimits^{frac{n}{g}}_{j=1} sumlimits_{k|gcd(i,j,frac{n}{g})} mu(k)
]
枚举 (k) :
[f(n) = sumlimits_{g|n} g sumlimits_{k|frac{n}{g}} mu(k) (frac{n}{kg})^2
]
记 (T=kg) , 枚举 (T) :
[f(n) = sumlimits_{T|n} (frac{n}{T})^2 sumlimits_{g|T} g mu(frac{T}{g})
]
狄利克雷卷积:
[f(n) = sumlimits_{T|n} (frac{n}{T})^2 varphi(T)
]
故:
[F(n) = sumlimits^n_{i=1} f(i) = sumlimits^n_{i=1} sumlimits_{T|i} T^2 varphi(frac{n}{T})
]
交换求和顺序:
[F(n) = sumlimits^n_{T=1} T^2 sumlimits^{lfloorfrac{n}{T}
floor}_{i=1} varphi(i)
]
后面的欧拉函数前缀和可以用杜教筛求出来,前面可以分块。