zoukankan      html  css  js  c++  java
  • noip数论复习总结

    这里写图片描述
    (上不了p站我要死了,侵权度娘背锅)

    勉勉强强算是把数论复习的差不多了。
    总结一下吧。

    其实数论的知识大部分是结合在一起的,勉强分类总结

    组合数

    求法

    组合数的求法根据不同情况选用不同的方法
    这里写图片描述
    2、3都是建立在模数为质数的基础上,而1、4适用于任何情况(数据范围内)。4的详细做法点这里
    另外,阶乘的逆元可以o(n)求,以前一直用的o(nlogn)的。。具体做法点这里

    卡特兰数

    算是一种组合数的特殊运用。通常如果题目中有暗示“任何时候某数都大于等于另一个数”,就多半是卡特兰数。
    卡特兰数的递推公式:C(2n,n)-C(2n,n+1)(记忆法点这里
    直接公式:C(2n,n)/(n+1)

    组合数的化简

    有些时候列出来的式子太长,难以计算。可以通过组合数的等价转化和递推公式(杨辉三角)来化简式子。例如:bzoj4403
    有以下的方法:
    1、添项法:+1-1=C(n,n)-1
    2、等价法:C(n,n)=C(n+1,n+1)
    3、合并(拆项):C(n,m)=C(n-1,m)+C(n-1,m-1)

    中国剩余定理(孙子定理)

    基础公式

    (mi两两互质)
    这里写图片描述
    M为所有的mi的乘积,Mi=M/mi,Mi^-1是在模mi意义下的逆元
    证明很好证明,带进去化简,发现与上述的式子等价。

    拓展孙子定理

    使用于任意的mi,但是要复杂的多(这里就不赘述了)
    主要的思路就是同于方程转化为等于方程,相当于解方程,合并上去。

    在Lucas定理上的应用

    Lucas定理的前提是模数为质数。当模数不为质数,但其质因子的指数都等于1时,可以用孙子定理来解决。例如:bzoj1951

    线性筛与积性函数

    这算不算是终于明白了线性筛?
    之前考了一次线性筛筛积性函数,这个积性函数的陌生的,所以只能用一般套路。以前筛欧拉、莫比乌斯都是背的板子。。
    详情点这里

    欧拉函数

    phi(i)表示1到i中与i互质的数的个数
    对于欧拉函数,
    一是灵活运用其定义,如bzoj2818(没写题解)
    二是运用公式:这里写图片描述 来解决一些有关gcd的问题

    欧拉定理

    这里写图片描述

    费尔马小定理

    这里写图片描述

    拓展欧拉定理

    这里写图片描述

    常常用在幂运算的指数的取模上

    拓展欧几里得

    基本用途:解方程
    拓展用途:求逆元(比欧拉定理求逆元来的快)

    容斥原理

    这是个高级玩意,以前一直都不太会用。一般有dfs的形式,也有线性的形式。还学到了一个快速统计子集和快速容斥的高级东西

    矩阵

    dp的快速递推

    通常是这样的形式:
    这里写图片描述
    不一定是01,具体情况具体分析,现场模拟一下就好了。
    因为有矩阵快速幂这玩意,所以对于递推的dp,可以很快的处理到10^7以上的项。

    矩阵乘本身的性质

    如hdu1257
    朱爷太强了,%%%


    大概就到这里吧
    就复习了这些,整理一下

  • 相关阅读:
    Niagara技术文档汇总
    cPickle对python对象进行序列化,序列化到文件或内存
    html = data.decode('gbk').encode('utf-8')
    用200行Python代码“换脸”
    No module named cv2
    JAVA Calendar具体解释
    千万别用模板给的list.size()巨坑
    div仿checkbox表单样式美化及功能
    动态规划0—1背包问题
    拒绝乱码:做外贸系统,打印俄文快递单时,避免俄文乱码的方法
  • 原文地址:https://www.cnblogs.com/LinnBlanc/p/7763077.html
Copyright © 2011-2022 走看看