zoukankan      html  css  js  c++  java
  • 「总结」莫反2

    感觉思(hui)路(tui)活(ti)跃(jie)了一些。
    写(tui)一下总(shi)结(zi)

    1.GuGuFishtion http://hzoj.com/contest/236/problem/1

    [egin{aligned}\ n&<m\ ans&=sumlimits_{i=1}^{n}sumlimits_{j=1}^{m}frac{varphi(ij)}{varphi(i)varphi(j)}\ \ d&=gcd(i,j),l=lcm(i,j)\ i&=\_*p^c,j=\_*p^e,d=\_*p^{min(c,e)},l=\_*p^{max(c,e)}\ varphi(ij)&=dvarphi(frac{ij}{d})\ &=dvarphi(l)\ &=dlprodfrac{p_l-1}{p_l}\ &=frac{diprodfrac{p_i-1}{p_i}jprodfrac{p_j-1}{p_j}}{dprodfrac{p_d-1}{p_d}}\ &=frac{dvarphi(i)varphi(j)}{varphi(d)}\ \ &=sumlimits_{i=1}^{n}sumlimits_{j=1}^{m}frac{dvarphi(i)varphi(j)}{varphi(i)varphi(j)varphi(d)}\ &=sumlimits_{i=1}^{n}sumlimits_{j=1}^{m}frac{d}{varphi(d)}\ &=sumlimits_{d=1}^{n}frac{d}{varphi(d)}sumlimits_{i=1}^{frac{n}{d}}sumlimits_{j=1}^{frac{m}{d}}[gcd(i,j)=1]\ &=sumlimits_{d=1}^{n}frac{d}{varphi(d)}sumlimits_{i=1}^{frac{n}{d}}sumlimits_{j=1}^{frac{m}{d}}sumlimits_{g|gcd(i,j)}mu(g)\ &=sumlimits_{d=1}^{n}frac{d}{varphi(d)}sumlimits_{g=1}^{frac{n}{d}}mu(g)frac{n}{dg}frac{m}{dg}\ T&=dg\ &=sumlimits_{T=1}^{n}sumlimits_{d|T}frac{d}{varphi(d)}mu(frac{T}{d})frac{n}{T}frac{m}{T}\ &=sumlimits_{T=1}^{n}frac{n}{T}frac{m}{T}sumlimits_{d|T}frac{d}{varphi(d)}mu(frac{T}{d})\ &=sumlimits_{T=1}^{n}frac{n}{T}frac{m}{T}F(T)\ end{aligned}]

    看一下(F(T))怎么求。
    首先这个东西是积性函数。
    证一下:
    (aperp b)

    [F(a)F(b)=frac{ab}{varphi(a)varphi(b)}=frac{ab}{varphi(ab)}=F(ab) ]

    [F=egin{cases} F(i)=frac{i}{i-1}-1&iin p\ F(ip_j)=F(i)F(p_j)&iperp p_j\ F(ip_j)=0&otherwise\ end{cases}]

    这样我们预处理函数(F(T))然后可以分块了。
    这样复杂度瓶颈在于线筛是(O(n))的。
    三次足够了。
    2.bookshelf http://hzoj.com/contest/236/problem/2
    首先两个引理(反正我想不到):

    [fr.gcd(x^{a_1}-1,x^{a_2}-1,......,x^{a_n}-1)=x^{gcd(a_1,a_2,......,a_n)}-1 ]

    证明:
    (n<m)

    [gcd(x^n-1,x^m-1)=gcd(x^n-1,x^m-x^n)=gcd(x^m-1,x^n(x^{m-n}-1))=gcd(x^m-1,x^{m-n}-1) ]

    变成了指数辗转相减。
    最后必然是:

    [gcd(x^n-1,x^m-1)=x^{gcd(m-n)}-1 ]

    [se.gcd(f_{a_1},f_{a_2},......,f_{a_n})=f_{gcd(a_1,a_2,......,a_n)} ]

    证明:
    (n<m)

    [gcd(f_n,f_m)=gcd(f_n,f_{n-1}f_{m-n}+f_{n}f_{m-n+1})=gcd(f_n,f_{n-1}f_{m-n})=gcd(f_n,f_{m-n}) ]

    变成了下标辗转相减。
    最后必然是:

    [gcd(f_n,f_m)=f_{gcd(n,m)} ]

    那么$$gcd({beauty_i})=2^{f[gcd({c_i})]}-1$$
    所以答案是:

    [egin{aligned} ans&=frac{1}{inom{n+K-1}{K-1}}sumlimits_{i|n}(2^{f(i)}-1)F(i)\ F(d)&=sumlimits_{sum{a_i}=n}[gcd({a_i})=d]\ &=sumlimits_{sum{a_i}=frac{n}{d}}[gcd({a_i})=1]\ &=sumlimits_{sum{a_i}=frac{n}{d}}sumlimits_{g|gcd({a_i})}mu(g)\ &=sumlimits_{g|frac{n}{d}}mu(g)sumlimits_{sum{a_i}=frac{n}{dg}}I\ &=sumlimits_{g|frac{n}{d}}mu(g)inom{frac{n}{dg}+K-1}{K-1}\ ans&=frac{1}{inom{n+K-1}{K-1}}sumlimits_{i|n}2^{f(i)}-1sumlimits_{g|frac{n}{i}}mu(g)inom{frac{n}{dg}+K-1}{K-1}\ &=frac{1}{inom{n+K-1}{K-1}}sumlimits_{T|n}sumlimits_{d|T}(2^{f(d)}-1)mu(frac{T}{d})inom{frac{n}{T}+K-1}{K-1}\ &=frac{1}{inom{n+K-1}{K-1}}sumlimits_{T|n}inom{frac{n}{T}+K-1}{K-1}sumlimits_{d|T}(2^{f(d)}-1)mu(frac{T}{d})\ &=frac{1}{inom{n+K-1}{K-1}}sumlimits_{T|n}inom{frac{n}{T}+K-1}{K-1}h(T)\ end{aligned}]

    然后(nln{n})预处理一下(h(T))就可以了。

    3.TrickGCD http://hzoj.com/contest/236/problem/3

    [gcd({b_i})=d ]

    (f(n))(gcd)恰好为(n)的方案数。
    (g(n))(gcd)(n)的倍数的方案数。

    [ans=sumlimits_{i=1}^{max}f(i) ]

    [g(n)=sumlimits_{n|d}f(d) ]

    [f(n)=sumlimits_{n|d}mu(frac{d}{n})g(d) ]

    [egin{aligned} g(d)&=prodlimits_{i=1}^{n}frac{a_i}{d}\ &=prodlimits_{i=1}^{frac{max}{d}}i^{c(id)}\ end{aligned}]

    这样按照结果来分类就可以了。

    4.Neko and function http://hzoj.com/contest/236/problem/4
    发现难点在于(1)的处理,考虑容斥。

    [ans=sumlimits_{i=1}^{n}f(i,K) ]

    (F(n,K,m))为恰好有(m)(1)的方案。
    (G(n,K,m))为至少有(m)(1)的方案。
    (g(n,K))为无限制有多少个(1)的方案。

    [G(n,K,m)=sumlimits_{i=m}^{K}inom{i}{m}F(n,K,i) ]

    [F(n,K,m)=sumlimits_{i=m}^{K}(-1)^{i-m}inom{i}{m}G(n,K,i) ]

    [G(n,K,m)=inom{K}{m}g(n,K-m) ]

    [egin{aligned} f(n,K)&=F(n,K,0)\ &=sumlimits_{i=0}^{K}(-1)^{i}inom{K}{i}g(n,K-i)\ &=sumlimits_{i=0}^{K}(-1)^{K-i}inom{K}{i}g(n,i)\ end{aligned}]

    现在求一下(g(n,K))
    怎么做呢?尝试做一个(dp)

    [g(n,K)=sumlimits_{d|n}g(d,K-1) ]

    用卷积来写的话就是:

    [g(K)=I*g(K-1) ]

    [g(K-1)=g(K)*mu ]

    由于每个质数之间互不干扰,所以(g)是一个积性函数。
    这样就出现了杜教筛的形式。

    [egin{aligned} S_{K-1}(n)&=sumlimits_{i=1}^{n}g(n,K-1)\ &=sumlimits_{i=1}^{n}sumlimits_{d|i}g(frac{i}{d},K)mu(d)\ &=sumlimits_{d=1}^{n}mu(d)sumlimits_{i=1}^{frac{n}{d}}g(i,K)\ &=sumlimits_{d=1}^{n}mu(d)S_K(frac{n}{d})\ S_K(n)&=S_{K-1}(n)-sumlimits_{d=2}^{n}S_K(frac{n}{d})\ end{aligned}]

    这样就可以直接杜教筛了。

    [egin{aligned} ans&=sumlimits_{i=1}^{n}f(i,K)\ &=sumlimits_{i=1}^{n}sumlimits_{j=0}^{K}(-1)^{j}inom{K}{j}g(i,j)\ &=sumlimits_{j=0}^{K}(-1)^{j}inom{K}{j}sumlimits_{i=1}^{n}g(i,j)\ &=sumlimits_{j=0}^{K}(-1)^{j}inom{K}{j}S_{j}(n)\ end{aligned}]

    5.GCD of Sequence http://hzoj.com/contest/236/problem/5

    [gcd(b_1,b_2......,b_n)=d ]

    (g(d))(gcd)为i(d)的倍数的方案,(f(d))(gcd)恰好为(d)的方案。

    [g(n)=sumlimits_{n|d}f(d) ]

    [f(d)=sumlimits_{n|d}mu(frac{n}{d})g(d) ]

    (c(d))(d)的倍数的(a)的个数。

    [g(d)=(frac{m}{d})^{n-c(d)}inom{c(d)}{n-K}(frac{m}{d}-1)^{c(d)} ]

    6.Battlestation Operational http://hzoj.com/contest/236/problem/6
    其实直接暴力推就可以了。
    挺简单的。

    [egin{aligned}\ f(n)&=sumlimits_{i=1}^{n}sumlimits_{j=1}^{i}lceil{frac{i}{j}} ceil[gcd(i,j)=1]\ &=sumlimits_{j=1}^{n}sumlimits_{j=1}^{i}lceil{frac{i}{j}} ceilsumlimits_{d|gcd(i,j)}mu(d)\ &=sumlimits_{i=1}^{n}sumlimits_{d|i}mu(d)sumlimits_{j=1}^{frac{i}{d}}lceil{frac{i}{jd}} ceil\ &=sumlimits_{i=1}^{n}sumlimits_{d|i}mu(d)g(frac{n}{d})\ g(n)&=sumlimits_{i=1}^{n}lceil{frac{n}{i}} ceil\ &=n+sumlimits_{i=1}^{n}lfloor{frac{n-1}{i}} floor\ &=n+h(n-1)\ h(n)&=sumlimits_{i=1}^{n}lfloor{frac{n}{i}} floor\ &=sumlimits_{i=1}^{n}sumlimits_{i|d}^{n}I\ &=sumlimits_{d=1}^{n}sumlimits_{i|d}I\ &=sumlimits_{d=1}^{n}d(i) end{aligned}]

    回代即可(nln{n})

  • 相关阅读:
    JavaWeb——Servlet开发3
    8.3.3
    8.3.2
    8.3
    8.2
    8.1
    7.3.9
    7.3.8.3
    7.3.8.2
    7.3.8.1
  • 原文地址:https://www.cnblogs.com/Lrefrain/p/12109783.html
Copyright © 2011-2022 走看看