jzoj4392

题意

\(x\in[1,A],y\in [1,B]\)\(\{x^y\}\)的大小
\(A,B\in 10^9\)

做法

\(x\)表示成\(x=\prod\limits_{i=1}^c p_i^{k_i}\),令\(d=gcd(k_1,k_2,...,k_c)\)
为唯一表示,在\(d=1\)处统计

  • \(x>\sqrt{A}\),则\(y\)可以任取,贡献为\(B\)
  • \(x\le sqrt{A}\),令\(L=log_xA\)\(k=(1,L]\),在\(x'=x^k\)处可能重复统计:\(x^y=(x'=x^k)^{y'}\)。那我们实际求的是\(a\in [1,L],b\in[1,B]\)\(\{ab\}\)的大小
    \([1,LB]\)划分成\(L\)段,每段形似\([iB+1,(i+1)B]\)\(a\)在其中有贡献当且仅当\(a\in[i,L]\)
    问题变成了\([iB+1,(i+1)B]\)中有多少数能表示成\(a\)的倍数(\(a\in[i,L]\)
    可以考虑容斥,但\(L\in [2,30]\),暴力肯定不行;若\(a_1,a_2\in[i,L]\),满足\(a_1|a_2\),则\(a_2\)可以丢掉。这样容斥元素的个数就\(\le 15\)
posted @ 2020-05-31 22:52  Grice  阅读(116)  评论(0编辑  收藏  举报