• JZPKIL


     题意描述:求 (sumlimits_{i=1}^n lcm(i,n)^ygcd(i,n)^x)

     数据范围:(1le n le 1e18,1le x,yle 3000)

    大神题啊

    先来一波反演

    [egin{aligned} & sum_{i=1}^nlcm(i,n)^y gcd(i,n)^x\ &=sum_{i=1}^ngcd(i,n)^x (frac{in}{gcd(i,n)})^y\ &=sum_{i=1}^n gcd(i,n)^{x-y} i^y n^y\ &=n^ysum_{i=1}^n gcd(i,n)^{x-y} i^y\ &=n^ysum_{d|n}d^{x-y}sum_{i=1}^{frac{n}{d}}[gcd(i,frac{n}{d})==1](id)^y\ &=n^ysum_{d|n}d^xsum_{i=1}^{frac{n}{d}}[gcd(i,frac{n}{d})==1]i^y\ &=n^ysum_{d|n}d^xsum_{i=1}^{frac{n}{d}}i^ysum_{p|gcd(i,frac{n}{d})}mu(p)\ &=n^ysum_{d|n}d^xsum_{p|frac{n}{d}}mu(p) p^ysum_{i=1}^{frac{n}{dp}}i^y end{aligned}]

    反演也就这些了,接下来代入伯努利数
    有 $$sumlimits_{i=1}^n i^k=frac{1}{k+1}sumlimits_{i=1}^k inom{k+1}{i} B_i n^{k-i+1}$$
    继续化柿子

    [egin{aligned} & n^ysum_{d|n}d^xsum_{p|frac{n}{d}}mu(p) p^ysum_{i=1}^{frac{n}{dp}}i^y\ &=n^ysum_{d|n}d^xsum_{p|frac{n}{d}}mu(p) p^yfrac{1}{y+1}sum_{i=1}^yinom{y+1}{i}B_i(frac{n}{pd})^{y-i+1}\ &=frac{1}{y+1}sum_{i=1}^yinom{y+1}{i}B_i n^ysum_{d|n}d^xsum_{p|frac{n}{d}}mu(p) p^y (frac{n}{pd})^{y-i+1} end{aligned}]

    (f(n,i)=n^ysumlimits_{d|n}d^xsumlimits_{p|frac{n}{d}}mu(p) p^y (frac{n}{dp})^{y-i+1})
    发现后面这个 (f(n,i)) 对于每个 (n) 的质因子互不干扰,是个积性函数

    现在只需要求出每个 (f(p_k^{e_k},i)) ,乘起来就行了

    观察发现当且仅当 (p=1)(p=p_k) 时柿子有意义

    (N=p_k^{e_k})

    那么 (f(N,i)=N^ysumlimits_{d|n}d^x((frac{N}{d})^{y-i+1}-p_k^{y}(frac{N}{p_kd})^{y-i+1}))

    质因子分解需要 (Pollard)_(Rho)

  • 相关阅读:
    python+selenium之页面元素截图
    selenium八大定位
    http概述之URL与资源
    数组中只出现一次的数字
    数字在排序数组中出现的次数
    把数组排成最小的数
    数组中出现次数超过一半的数字
    调整数组顺序使得奇数位于偶数的前面
    旋转数组的最小值
    二维数组的查找
  • 原文地址:https://www.cnblogs.com/mikufun-hzoi-cpp/p/12145686.html
Copyright © 2020-2023  润新知