zoukankan      html  css  js  c++  java
  • GG

    打个模拟赛,自认为写了(O(mn))的很稳,但事实上是(O(mn^2)),才发现自己不会主定理,就记录在这儿好了

    先把主定理抄在这里:

    (age 1,b>1)是常数,(f(n))是一个函数,(T(n))是定义在非负整数上的递归式:

    [T(n)=aT(frac{n}{b})+f(n) ]

    其中我们将(frac{n}{b})解释为(lfloor frac{n}{b} floor)(lceil frac{n}{b} ceil)。那么(T(n))有如下渐进界:

    1. 若对于某个常数(varepsilon>0)(f(n)=O (n^{log_{b}a-varepsilon})),则(T(n)=Theta (n^{log_{b}a})).

    2. (f(n)=Theta(n^{log_{b}a})),则(T(n)=Theta(n^{log_{b}a}lgn)).

    3. 若对于某个常数(varepsilon>0)有,(f(n)=Omega (n^{log_{b}a-varepsilon})),且对于某个常数(c<1)和足够大的(n)(af(frac{n}{b})leq cf(n)),则(T(n)=Theta(f(n))).

    然后我很傻逼的这么写的

    void solve(int l,int r,int ql,int qr,int v){
        if(ql>qr)return;
        if(ql==qr) {
            p[ql] = (p[ql] + 1LL*(r-l+1)*(n-v-1)%MOD*(n-v-1))%MOD;
        }
        else{
            int mid=l+r>>1;
            int t=upper_bound(a+1,a+n+1,mid)-a;
            solve(l,mid,ql,t-1,v+qr-t+1),solve(mid+1,r,t,qr,v);
            solve(l,mid,ql,t-1,v),solve(mid+1,r,t,qr,v+t-ql);
        }
    }
    
  • 相关阅读:
    【zZ】OpenCV HOGDescriptor 参数图解
    [C]遍历目录下所有文件
    drawing
    转:基于用户投票的排名算法系列
    编码格式
    泛型
    接口
    隐藏方法不能实现多态性
    结构
    静态
  • 原文地址:https://www.cnblogs.com/flukehn/p/7765867.html
Copyright © 2011-2022 走看看