数学总结

数学总结

抽屉原理

基本解释:
  1. n+m 个物品分成 n 组,至少有 n 个组有两个物体
  2. 把多余 n×m+1 个物体放入 n 个抽屉里,至少有一个抽屉有不少于 m+1 个物体
  3. 把无数还多件物体放入n个抽屉,则至少有一个抽屉里有无数个物体。
第二抽屉原理

nm1 个物体放入 n 个抽屉里,其中必有一个抽屉至多有 m1 个物体

例题
P7738 [NOI2021] 量子通信

由于 k<16162=256 ,故我们将原 01 串分为 16

又抽屉原理(鸽巢原理),字典与信息串中至少有 1 个段相等。

所以我们将在满足在第 i 个块相等的串用前向星连接起来。

同时,我们也可以将 1601 串有多少个 1 给处理出来

我们每次比较的步骤:

  1. 将信息串化为 01 串,分成 16
  2. 对于每一块,我们将在前向星中存起来序列与之比较
  3. 直到比较出一个在字典中的串符合要求,退出。

时间复杂度: O(1616mx)

x 代表前向星中所存的串的期望个数

由题可知,字典是完全随机的,所以对于每一种 x,其大概存了 n216=7 个串

所以时间复杂度为 2e8

赛瓦维斯特定理

基本解释

已知 a,b 为大于 1 的正整数, (a,b)=1 ,则使不定方程 ax+by=C 无负数解的最大整数 C=abab

裴蜀定理

基本解释:

使得方程 ax+by=1 有解的充要条件为 (a,b)=1

推论:
  1. 使得方程 ax+by=c 有整数解分条件为 gcd(a,b)|c
  2. 方程 ax+by=c 有解 (x,y)(cgcd(a,b)x,cgcd(a,b)y) 也一定是解
  3. 方程 ax+by=c 的解为 (x,y)(x+kbgcd(a,b),ykbgcd(a,b)),kZ 也是一组解

欧拉函数

基本解释:

ϕ(n) 表示在 [1,n] 中与 n 互质的数的个数

ϕ(x)=xi=1n(11primei)

特别的 ϕ(1)=1

性质
  1. 积性函数

    gcd(a,b)=1,ϕ(ab)=ϕ(a)ϕ(b)

  2. a|b,ϕ(ba)=aϕ(b)

  3. gcd(2,n)!=1,ϕ(2n)=ϕ(n)

  4. p|nϕ(p)=n

求法
  1. O(n)
  2. 线筛 O(n)

中国剩余定理

f(x)={xa1(modm1)xa2(modm2)...xan(modmn)m1,m2,m3...,mn

M=i=1nmi,Mi=Mmi,ti=Mi1ti 是在模 mi 意义下的乘法逆元

则有解 x=(i=1naitiMi)+kM,kZ ,最小解 =(i=1naitiMi)%M

逆元

定义:

在模 m 的意义下,使得 xy1(modm)

yx 的逆元,记为 x1

求法
  1. 欧拉定理

    gcd(a,n)=1,aϕ(n)1(modn)

  2. 费马小定理

    gcd(a,p)=1p,aap2(modp)

  3. 拓展欧拉定理

    an{an    (n<ϕ(p))an modϕ(p)+ϕ(p)    (n>=ϕ(p))(modp)

  4. 线性求逆

    结论:i1=(pp/i)(p%i)1%p ,其中 p 为模数,p>i

  5. 离线求逆

    我们求 a1,a2,..,an 在模 p 下的逆元

    不妨设 M=i=1nai ,求出 M1

    从后往前 ai=Mi1Mi1,Mi11=Mi1ai

卡特兰数

递推式:

  1. C(n)=C(0)C(n1)+C(1)C(n2)+..+C(n1)C(1)
  2. (n3)Cn=n2(C3Cn1+C4Cn2+..+Cn1C3)
  3. h(n)=h(n1)(4n2)/(n+1)

表达式:

  1. Cn=(n2n)n+1=(n2n)(n12n)
  2. 特别的 C1=C0=1
用途:
  1. 出栈入栈的顺序个数

    设有 n 个数时,方案数为 f(n)

    则有 f(n)=f(n1)f(0)+f(n2)f(1)+..+f(0)f(n1)

    特别的 f(1)=f(0)=1

  2. 在一个凸多边形中,通过若干条互不相交的对角线,把这个多边形划分成了若干个三角形。

    f(n) 代表边数,则有 f(n)=f(0)f(n)+f(1)f(n1)+...+f(n)f(n)

    特别的 f(3)=f(2)=1 ,则易得 f(n)=C(n2)

  3. 给定N个节点,能构成 Cn 种不同的二叉搜索树。

  4. n 对括号,其正确排列的个数为 Cn

P3200 [HNOI2009]有趣的数列
题意简述

一个数列,满足 a2i<a2(i+1),a2i1<a2(i+1)1,a2i1<a2i

由此可得:

对于每一个偶数位 2i 都满足其大于之前的所有数,并且 a2i>=2i

所以转化题意:将 2n 个数,以此填入最左边的奇数位或者偶数位。

可以证明,当我们加入一个数 j 后,要保证在奇数位上的数字的个数不少于在偶数位上的。

证明:
我们假设已经填了 2a 个数,奇数位偶数位各 a 个,此时下一个数为 2a+1 ,下一个偶数位的最小要求为 2(a+1) ,此时无论如何第 2a+1 个数都不可以填入偶数位中,只可以填入奇数位。

所以此时就变成了卡特兰数的推到过程,设在偶数位加数为 1 ,奇数位加数为 1 ,求保证随时前缀和和为非负数的方案有多少种。

自然为 C(2n,n)n+1

注意模数不一定为质数,所以以使用唯一分解定理约分。

高斯消元

例题
P2447 [SDOI2010] 外星千足虫

其实和一般的高斯消元差不多,但是由于只考虑其自己的奇偶性,所以将加减改为取亦或就可以了

矩阵

目前看到的大多为和图论结合题目

例题
P6190 [NOI Online #1 入门组] 魔法

用弗洛伊德+矩阵加速

可以看到,当我们算出使用了一次魔法的邻接矩阵的 n 次方

即可算出使用了 n 次魔法的邻接矩阵

期望

一般和其他的数论一起考

posted @   轩Demonmaster  阅读(59)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探
· 为什么 退出登录 或 修改密码 无法使 token 失效
点击右上角即可分享
微信分享提示