• O(n)的时间复杂度预处理逆元和∑Cnm的前缀和


    2021牛客多校B题,只能说tql⑧

    O(n)的时间复杂度预处理逆元

    inv[0] = 1;
    inv[1] = 1;
    for(int i = 2; i <= maxn - 5; ++i) {
       inv[i] = (ll)(mod - mod / i) * inv[mod % i] % mod;
    }  
    

    ∑O(n)的时间复杂度求Cnm的前缀和

    image-20210804113625209

    image-20210804113435939

    就可以得到下面这些式子,用这些式子可以快速求前缀和 :

    image-20210804113453177

        s1[n + m] = 1;
        for(int i = n + m; i >= 1; i--) {
            s1[i - 1] = ((2ll * s1[i] % mod - 1ll * c(n + m - i, n) % mod + mod)) % mod;
        }
        s2[n - 1] = 1;
        for(int i = n - 1; i >= 1; i--) {
            s2[i - 1] = ((s2[i] % mod + 1ll * c(n + m - i, n - i) % mod + mod)) % mod;
            s2[i - 1] = ((2ll * s2[i - 1] % mod - 1ll * c(n + m - i, n - i) % mod + mod)) % mod;
        }
    
        for(int i = n + m; i >= 0; i--) {
            s1[i] = (s1[i] - s2[i] + mod) % mod;
        }
    
  • 相关阅读:
    单词小课堂
    js数组
    js规范
    css
    seajs
    IDEA快捷键
    移动端设备禁止页面滑动
    sass中的!default的作用
    【数据分析 R语言实战】学习笔记 第八章 方差分析与R实现
    excel合并单元格
  • 原文地址:https://www.cnblogs.com/AC673523745/p/15098184.html
Copyright © 2020-2023  润新知