• 莫反总结


    因为本人太菜,就只总结了几道题。
    [SDOI2015] 约数个数和 + [BZOJ2673] Jzptab + [SDOI2014] 数表 + [SDOI2017] 数字表格

    下面总结一下这几道题推式子的技巧

    [SDOI2015] 约数个数和

    (sum_isum_jd(ij))

    首先要知道 (d(ij) = sum_{x|i}sum_{y|j} [gcd(x,y)==1]) 证明考虑一一映射

    之后的便是一步一步提出式子

    $ = sum_i sum_j sum_{x|i} sum_{y|j} [gcd(x,y) == 1] $

    $= sum_x sum_y frac n x frac m y [gcd(x,y) == 1 ] $ 接着将 ([gcd==1]) 变为 (mu) 即可

    [BZOJ2673] Jzptab

    (sum_isum_jlca(i,j))

    我们习惯于求 (gcd) 不难想到 (gcd(n,m) * lca(n,m) = nm)

    于是 $sum_isum_jfrac{ij}{gcd(i,j)} = sum_ddsum_{i=1}^{frac nd}sum_{j=1}^{frac md}ij[gcd(i,j)==1] $

    (sum_{d=1}^ndsum_{x=1}^{frac n d} x^2mu(x)S(frac n {xd}) S(frac m {xd}))

    这里又一部很经典的变换,证明较为复杂,需要将原式一一映射到变式上去。只需记住其中心思想 -> 能够先枚举较为复杂的变量然后再算(改变求和顺序)

    (T = xd),则 $ sum_{T=1}^{n} TS(frac n T) S(frac m T)sum_{t|T}mu(t)t $

    有了这个之后就可以直接数论分块计算了

    [SDOI2014] 数表

    (sum_{i=1}^nsum_{j=1}^mo(gcd(i,j)))

    因为对 (o(x)) 有限制,还不能就把 (o(x)) 直接消掉,如果消掉了就不好表示出限制条件

    所以 (sum_{d=1}^{n}sum_{i=1}^{frac n d} sum_{j = 1}^{frac m d} o(d)[gcd(i,j)==1]=sum_{d=1}^no(d)sum_{t=1}^{frac n d}mu(t)*frac {n} {dt} *frac {m} {dt})

    又是那一步经典变化 ,观察到可以数论分块下部为 (dt) 换元

    (sum_{T=1}^nsum_{t|T}o(t)mu(frac T t) * S(frac nT) * S(frac m T))

    [SDOI2017]数字表格

    (prod_{i=1}^nprod_{j=1}^mfi(gcd(i,j)))

    因为 (gcd) 相同的会出现很多次(注意对于连乘操作,如果要把后面的往前提,那么必须要把式子变到幂次那里,并换为连加符号)

    (prod_{i=1}^nfi(i)^{sum_{i|d}F(d)mu(frac d i)} = prod_{i=1}^nfi(i)^{sum_{d=1}^{n/i}frac n {di} frac m {di}mu(d)})

    同样的考虑换元

    (prod_{T=1}^{n}prod_{i|T}fi(i)^{mu(frac T i)frac n T frac mT})

    这个式子看上去可以整除分块了,但是又长得不太一样,要前缀积处理

    推式子技巧提炼

    因为推式子很活,这里只写出一部分做思路提示,一些比较生搬硬套的不会写下

    1. (d(ij) = sum_{x|i}sum_{y|j}[gcd(x,y)==1])
    2. (lcm(i,j)=frac{ij}{gcd(i,j)})
    3. gcd 的处理 a. 决定计算个数的 (gcd) 可以莫反
    4. gcd 的处理 b. 在整个前面枚举 (gcd) ,然后再后面添加 ([gcd(i,j)==d])
    5. gcd 的处理 c. 与前面作用相同只是给 gcd 套上 (Id)
    6. gcd 的处理 d. 对于 ([gcd(i,j)==d]) 提出公因数 (d)
    7. gcd 的处理 e. 对于([gcd(i,j)==1] ->sum_{x|i,x|j}mu(x))
    8. 式子变换处理 a. 一般来说不会保留 (sum_{d|n}) 这时直接换元 令 (t = frac nd)
    9. 式子变换处理 b. 对于内嵌的 (sum_{d|i}) 将这个往外提原本在外面的加上 ([gcd(i,j)==d])
    10. 式子变换处理 c. 对于 $sum_{t=1}nsum_{d=1}{frac n t} S(frac n {dt}) $形如这样的结构可以换元变为 (sum_{T=1}^{n}sum_{t|T} S(frac n T))
  • 相关阅读:
    网页图表Highcharts实践教程标之添加题副标题版权信息
    S3C6410 裸机硬件JPEG解码(转)
    FPGA UART简单的串口接收模块
    unicode转GBK,GNK转unicode,解决FATFS中文码表占用ROM问题(转)
    Java 基础类型转换byte数组, byte数组转换基础类型
    JNI错误总结(转)
    Java通过JNI调用dll详细过程(转)
    UDP传输包大小(转)
    SD卡兼容性问题(转)
    汉字与区位码互转(转)
  • 原文地址:https://www.cnblogs.com/jojojojojob/p/14392025.html
Copyright © 2020-2023  润新知