传送门:https://nanti.jisuanke.com/t/42386
题意
$设f_a(x)=a^x,求解$
$$\sum_{a=2}^n\left ( a\sum_{b=a}^n\left \lfloor f_a^{-1}(b) \right \rfloor\left \lceil f_b^{-1}(a)\right \rceil \right ) mod\;998244353$$
思路
$根据f_a^{-1}(x)=\log_a^x可知,原式等于$
$$\sum_{a=2}^n\left ( a\sum_{b=a}^n\left \lfloor \log_a^{b}\right \rfloor\left \lceil \log_b^a\right \rceil \right ) $$
$因为b\ge a,所以\left \lceil \log_b^a\right \rceil=1,即$
$$\sum_{a=2}^n\left ( a\sum_{b=a}^n\left \lfloor \log_a^{b}\right \rfloor \right ) $$
$接下来考虑\log_a^b的贡献,我们知道\log_a^a=1,\log_a^{a^2}=2,\log_a^{a^k}=k.$
$而这些有多少个呢?1有a^2-a个,2有a^3-a^2个…$
$所以对于a^2<n的,遍历次幂计算贡献。$
$对于a^2>n,只有1这个贡献,所以我们只要遍历\sqrt n即可,n=1e12,very \;good!$
$不过对于a*a=n,有a^2-a个1,和1个2,另外计算即可。$
$对于a*a>n,贡献为a*(n-a+1)+(a+ 1)*(n-a)+…+n*1=\sum_{a=\sqrt n+1}^na*(n-a+1)$
$这一部分为:$
$$\frac{1}{2}(n+1)(\sqrt n+1+n)(n-\sqrt n)+\frac{1}{6}(n(n+1)(2n+1)-(\sqrt n-1)(\sqrt n)(2\sqrt n-1))$$
$最后整合计算即可。$
$复杂度为O(\sqrt n)。$
Code
1 | # |
本文作者:jujimeizuo
本文地址: https://blog.jujimeizuo.cn/2021/04/11/2019-icpc-yinchuan-function/
本博客所有文章除特别声明外,均采用 CC BY-SA 3.0 协议。转载请注明出处!