zoukankan      html  css  js  c++  java
  • SRM582 SemiPerfectPower

    题意

    给定(l,r),求有多少个(xin[l,r]),使得(x)可以表示成(acdot b^c(a<b,c>1))
    (这个东西叫SemiPerfect number,直译过来就是半完美数)
    (lle rle 8cdot 10^{16})

    做法

    一般的,以下考虑(l=1,r=n)

    引理:每个半完美数都可表示成(c=2)(c=3)

    证明:
    (c>3)且为偶数,(acdot b^{2k}=acdot (b^k)^2)
    (c>3)且为奇数,(acdot b^{2k+1}=(ab)cdot (b^k)^2)

    定义:令(P_2(x))表示(x)是否没有非平凡的平凡数因子;令(P_3(x))表示(x)是否没有非平凡的立方数因子、

    定义:对于一个半完美数(x),其最小表示法为在满足(c)最小的情况下。若(c=2),则需满足(P_2(a)=1);若(c=3),则需满足(P_3(a)=1)

    考虑计算最小表示法(c=2)
    显然有(ale sqrt[3]{n})
    暴力枚举(a),至于是否有平方数因子可以用莫比乌斯函数判断

    考虑计算最小表示法(c=3)
    如何判断其不能用(c=2)表示呢?
    (acdot b^3=(ab)cdot b^2)
    (k^2|ab),且(k^2)(ab)的最大平方因子
    ((ab)cdot b^2=(ab/k^2)cdot (bk)^2),其不能用(c=2)表示的充要条件为(ab/k^2ge bk),即(age k^3)

    容易得到:

    [sumlimits_{a=1}^{sqrt[4]{n}}[P_3(a)]sumlimits_{k=1}^{sqrt[3]{a}}sumlimits_{b=a+1}^{sqrt[3]{n/a}}[k^2|ab]cdot P_2(ab/k^2) ]

    假设以下满足(k^2|ab)
    (k'=k^2/(k^2,a))
    (a'=a/(k^2,a))
    (b'=b/k')
    那么(P_2(ab/k^2)=P_2(a'cdot b')=P_2(a')cdot P_2(b')cdot [(a',b')=1])

    [sumlimits_{a=1}^{sqrt[4]{n}}[P_3(a)]sumlimits_{k=1}^{sqrt[3]{a}}sumlimits_{b'=a/k'+1}^{frac{sqrt[3]{n/a}}{k'}}P_2(a')cdot P_2(b')cdot [(a',b')=1] ]

    [sumlimits_{a=1}^{sqrt[4]{n}}[P_3(a)]sumlimits_{k=1}^{sqrt[3]{a}}P_2(a')sumlimits_{d|a'}mu(d)sumlimits_{b'=a/k'+1}^{frac{sqrt[3]{n/a}}{k'}} [d|b']cdot P_2(b') ]

    我们这么处理:
    预处理出(sumlimits_{i=1}^r [d|i]]cdot P_2(i))
    这个可以写成(F(d,r/d)=sumlimits_{i=1}^{r/d}P_2(id))(递推(O(1))转移)
    这个状态数是(int_{1}^{n^{1/4}}frac{n^{1/3}}{x}dx=O(n^{1/3}ln(n)))

    然后我们暴力算前面三项,在long long范围内,我们习惯将(n)约数个数的上界定义为(O(n^{1/3}))
    那么暴力算前三项的复杂度积分一下大约为:(n^{7/18}),实际中非常不满

  • 相关阅读:
    单例设计模式
    MySQL数据类型
    MySQL创建、修改、删除数据库
    HTTP请求与响应
    netcore在CentOS7 下使用处理图片的问题
    SQL删除重复数据
    不同浏览器对cookie大小与个数的限制
    asp.net实现SQL2005的通知数据缓存
    MS SQL 设置自增长字段默认值
    MS SQL 批量操作
  • 原文地址:https://www.cnblogs.com/Grice/p/14146433.html
Copyright © 2011-2022 走看看