zoukankan      html  css  js  c++  java
  • NOIp2020复赛前日志

    NOIp2020复赛前日志

    组合数和卢卡斯定理

    首先写的顺序别搞错了

    (n)个不同元素中取出(m(m≤n))个元素的所有组合的个数

    [C_n^m=inom nm=C(n,m)=frac{n!}{m!(n-m)!}\ C_n^0=1\ C_n^m=C_n^{n-m}=C_{n-1}^{m-1}+C_{n-1}^{m} ]

    Lucas

    对于质数(p),有

    [inom{n}{m}mod p=inom{n/p}{m/p}cdot inom{nmod p}{mmod p}mod p ]

    (m=0)返回(1)(不然会死循环)

    其中的(inom{n/p}{m/p})不需要再调用卢卡斯函数分解。

    需要其他的算法:快速幂求逆元,预处理出阶乘。

    注意阶乘预处理时要从(0)开始,(0!=1).

    空间计算

    [类型空间/8 imes 数组大小/1024/1024=空间(MB) ]

    例如长度为(10^6)(int)数组

    (32div8 imes10^6div1024div1024=3.814MB)

    所以如果您有(512MB)的话,您可以开(10^8)(int)(381.4MB))也不会(memory)爆炸。

    而用STL容器的话……最好考虑极限情况并再小二分之一吧。

    比如今天我就写The Beautiful Chtholly Tree写挂了……sd

    upd(19:09)过啦!

    记录详情

    接下来要快点打板子了!


    • [x] 线段树
    • [x] 树状数组
    • [x] 树状数组(O(n))预处理
    • [x] ST表
    • [x] LCA
    • [x] (O(1))LCA
    • [ ] (dots)

    游记

    NOIp2020复赛游记

  • 相关阅读:
    蛇形填数
    A Famous Music Composer
    Java用筛子法求素数
    素数求和问题
    Java中数组的快排
    大数阶乘
    Binary String Matching
    括号配对问题
    Android Studio安装和使用
    Android Studio使用手册
  • 原文地址:https://www.cnblogs.com/send-off-a-friend/p/14087775.html
Copyright © 2011-2022 走看看