zoukankan      html  css  js  c++  java
  • P4449 于神之怒加强版

    题目大意:

    [sumlimits_{i=1}^{n}sumlimits_{j=1}^{m}gcd(i,j)^k ]

    首先很套路地推出

    [ret=sumlimits_{T=1}^{n}lfloorfrac{n}{T} floorlfloorfrac{m}{T} floorsumlimits_{t|T}t^kmu(frac{T}{t}) ]

    然后我们发现,前面直接除法分块就好了,关键是后面怎么办

    我们设

    [f(T)=sumlimits_{t|T}t^kmu(frac{T}{t}) ]

    很容易发现,它是一个积性函数可以线性筛,关键在于处理(prime|i)的情况

    考虑莫比乌斯函数性质:对于(T)的某个质因子(p)的最高次(p^x),有贡献的部分其实只有当(t=p^x)(t=p^{x-1})时,因为其他情况下(mu)的值都为(0)

    所以质因子(p)对答案的贡献是((p^{kx}-p^{k*(x-1)})*others)

    提出(p^{k*(x-1)})得到((p^k-1)*p^{k*(x-1)}*others)

    类比推出对于(p)最高次为(p^{x-1})的某个数字,其贡献为((p^k-1)*p^{k*(x-2)}*others)

    所以得出:当(prime|i)时,(f(i*prime)=f(i)*prime^k)

    然后就可以线性筛预处理,除法分块回答啦(・∀・)

  • 相关阅读:
    tomcat 虚拟目录
    linux 基本常用命令
    linux shell
    分布式锁
    多线程 ThreadLocal
    Java并发包中Lock的实现原理
    spring 异常处理
    spring Cache /Redis 缓存 + Spring 的集成示例
    spring 事务传播行为
    Vue.nextTick浅析
  • 原文地址:https://www.cnblogs.com/knife-rose/p/12020247.html
Copyright © 2011-2022 走看看