• 51nod-1220-约数之和


    题意

    [sum _{i=1}^nsum _{j=1}^nd(ij) \ d(x)=sum _{e|x}e ]

    (nle 10^9)

    分析

    没有推出来。这题有几个要点要学习。

    第一,推式子要有方向,不能看到什么就动一动,最后搞出来一个算不了的东西。

    第二,对于同一个多重和式的不同处理:

    [sum _{i=1}^nsum _{j=1}^{lfloorfrac{n}{i} floor}=sum _{j=1}^nsum _{i=1}^{lfloorfrac{n}{j} floor}=sum _{ijle n}=sum _{i=1}^nsum _{j|i} ]

    不同的情况可以用不同的处理,不过最后两种在平常的题目中用的比较少,主要是在推杜教筛表达式的时候会经常使用这种方法。

    第三,看到可以化开的东西不要急,先把其他东西处理好,变成一个比较漂亮的形式再处理这个。

    第四,求和上界的选取。在推式子的过程中,为了化简,可以把求和上界做一些不影响答案的改动,使得它与其他变量无关。比如说

    [sum _{i=1}^nsum _{j=1}^{lfloorfrac{n}{i} floor}jlfloorfrac{n}{ij} floor ]

    这里既然当 (j>lfloorfrac{n}{i} floor) 的时候后面的值为 0,那不如直接把 (j) 的求和上界改为 (n) ,简化一些条件。

    于是就可以开始推这题了。

    [egin{aligned} sum _{i=1}^nsum _{j=1}^nsum _{d|ij}d&=sum _{i=1}^nsum _{j=1}^n[frac{d}{gcd(d,i)}|j]d \ &=sum _{i=1}^nsum _{d=1}^{n^2}dlfloorfrac{ngcd (d,i)}{d} floor && (简化d的求和上界)\ &=sum _{e=1}^nsum _{i=1}^{lfloorfrac{n}{e} floor}sum _{d=1}^{lfloorfrac{n^2}{e} floor}delfloorfrac{ne}{de} floor[gcd(i,d)=1] \ &=sum _{e=1}^nesum _{i=1}^{lfloorfrac{n}{e} floor}sum _{d=1}^{n}dlfloorfrac{n}{d} floor[gcd(i,d)=1] && (再次简化d的求和上界) \ &=sum _{i=1}^nsum _{e=1}^{lfloorfrac{n}{i} floor}esum _{d=1}^ndlfloorfrac{n}{d} floor[gcd(d,i)=1] \ &=sum _{a=1}^nmu (a)sum _{i=1}^{lfloorfrac{n}{a} floor}g(lfloorfrac{n}{ai} floor)sum _{d=1}^{lfloorfrac{n}{a} floor}adlfloorfrac{n}{ad} floor end{aligned} ]

    (g(n)=sum _{i=1}^nlfloorfrac{n}{i} floor,f(n)=sum _{i=1}^nilfloorfrac{n}{i} floor) ,那么

    [ans=sum _{a=1}^namu (a)g(lfloorfrac{n}{a} floor)f(lfloorfrac{n}{a} floor) ]

    (O(n^frac{3}{4})) 计算。

  • 相关阅读:
    wcf简单的创建和运用
    关于DevExpress的gridControl的简单使用
    泛型 Field 和 SetField 方法 (LINQ to DataSet)
    【转】string.Format对C#字符串格式化
    ashx实现文件下载以及文件MD5码测试
    【转】10分钟了解设计模式(C#)
    [转]Jquery中AJAX错误信息调试参考
    搭建Harbor docker镜像仓库
    安装python3.x
    shell替换
  • 原文地址:https://www.cnblogs.com/owenyu/p/7399234.html
Copyright © 2020-2023  润新知