• 神奇的姿势


    题意 : 给你一个1-n的排列a,q个询问,每次询问一个区间内所有有序数对gcd的和。

    ----------------------------------此后一千里---------------------------------

    考虑莫队,那么我们想要对加入一个数会有很高的代价,那我们能不能再每个数的因数时间内去完成这个动作呢?可以的。

    我们维护另一个数列y,我们考虑已有一个数b,那么在那个数列上把所有b的因子i的位置加上t,我们想加入a,使得(sigma(i|a)y[i] ) = (gcd(a,b)=d)

    如果i是大于d的因子无贡献,那么我们就是要找sigma(i|d) y[i] = d

    而我们有一个公式 sigma(i|d) phi(i) = d

    所以我们加上的t实际上就是phi(i),那么就可以在因数时间内去实现莫队的转移了。

    实际上还有另一个东西,如果是让你求区间内互质数的对数,可以直接把t换成μ(i),一样的方法,没毛病。

  • 相关阅读:
    luoguP2939 [USACO09FEB]改造路Revamping Trails
    出题
    数字游戏
    统一异常处理
    数据验证
    拦截器
    数据绑定和表单标签库
    类型转换和格式化
    Spring MVC入门
    4springboot:日志(下)
  • 原文地址:https://www.cnblogs.com/ihopenot/p/6482399.html
Copyright © 2020-2023  润新知