数学总结
数学总结
抽屉原理
基本解释:
- 有 \(n+m\) 个物品分成 \(n\) 组,至少有 \(n\) 个组有两个物体
- 把多余 \(n\times m +1\) 个物体放入 \(n\) 个抽屉里,至少有一个抽屉有不少于 \(m+1\) 个物体
- 把无数还多件物体放入n个抽屉,则至少有一个抽屉里有无数个物体。
第二抽屉原理
把 \(nm-1\) 个物体放入 \(n\) 个抽屉里,其中必有一个抽屉至多有 \(m-1\) 个物体
例题
P7738 [NOI2021] 量子通信
由于 \(k<16\) 且 \(16^2=256\) ,故我们将原 \(01\) 串分为 $ 16 $ 块
又抽屉原理(鸽巢原理),字典与信息串中至少有 \(1\) 个段相等。
所以我们将在满足在第 \(i\) 个块相等的串用前向星连接起来。
同时,我们也可以将 \(16\) 位 \(01\) 串有多少个 \(1\) 给处理出来
我们每次比较的步骤:
- 将信息串化为 \(01\) 串,分成 \(16\) 块
- 对于每一块,我们将在前向星中存起来序列与之比较
- 直到比较出一个在字典中的串符合要求,退出。
时间复杂度: \(O(16*16*m*x)\)
\(x\) 代表前向星中所存的串的期望个数
由题可知,字典是完全随机的,所以对于每一种 $ x $,其大概存了 \(\frac {n}{2^{16}}=7\) 个串
所以时间复杂度为 \(2e8\)
赛瓦维斯特定理
基本解释
已知 \(a,b\) 为大于 \(1\) 的正整数, \((a,b)=1\) ,则使不定方程 \(ax+by=C\) 无负数解的最大整数 \(C=ab-a-b\)
裴蜀定理
基本解释:
使得方程 \(ax+by=1\) 有解的充要条件为 \((a,b)=1\)
推论:
- 使得方程 \(ax+by=c\) 有整数解分条件为 \(\gcd(a,b)|c\)
- 方程 \(ax+by=c\) 有解 \((x,y)\) 则 \((\frac{c}{\gcd(a,b)}x,\frac{c}{\gcd(a,b)}y)\) 也一定是解
- 方程 \(ax+by=c\) 的解为 \((x,y)\) 则 \((x+k\frac{b}{\gcd(a,b)},y-k\frac{b}{\gcd(a,b)}),k\in Z\) 也是一组解
欧拉函数
基本解释:
\(\phi(n)\) 表示在 \([1,n]\) 中与 \(n\) 互质的数的个数
\(\phi(x)=x*\prod_{i=1}^{n}(1-\frac{1}{prime_i})\)
特别的 \(\phi(1)=1\)
性质
-
积性函数
\(\gcd(a,b)=1,\phi(a*b)=\phi(a)\phi(b)\)
-
\(a|b,\phi(b*a)=a*\phi(b)\)
-
$\gcd(2,n)!=1 ,\phi(2*n)=\phi(n) $
-
\(\sum_{p|n} \phi(p)=n\)
求法
- \(O(\sqrt n)\)
- 线筛 \(O(n)\) 求
中国剩余定理
且 \(M=\prod\limits_{i=1}^{n}m_i,M_i=\frac{M}{m_i},t_i=M_i^{-1}\),\(t_i\) 是在模 \(m_i\) 意义下的乘法逆元
则有解 \(x=(\sum\limits_{i=1}^{n}a_it_iM_i) +kM,k\in Z\) ,最小解 \(=(\sum\limits_{i=1}^{n}a_it_iM_i)\% M\)
逆元
定义:
在模 \(m\) 的意义下,使得 \(x*y\equiv 1 \pmod{m}\)
则 \(y\) 为 \(x\) 的逆元,记为 \(x^{-1}\)
求法
-
欧拉定理
$\gcd(a,n)=1,a^{\phi(n)}\equiv 1 \pmod{n} $
-
费马小定理
$\gcd(a,p)=1且p为质数,则 a*a^{p-2}\equiv \pmod{p} $
-
拓展欧拉定理
\[a^{n}\equiv \begin{cases} \notag a^n~~~~(n<\phi(p))\\ a^{n ~\bmod \phi(p)+\phi(p)}~~~~(n>=\phi(p)) \end{cases} \pmod{p} \] -
线性求逆
结论:\(i^{-1}=(p-p/i)*(p\% i)^{-1}\% p\) ,其中 \(p\) 为模数,\(p>i\)
-
离线求逆
我们求 $ a_1,a_2,..,a_n$ 在模 \(p\) 下的逆元
不妨设 \(M=\prod _{i=1}^{n} a_i\) ,求出 \(M^{-1}\)
从后往前 \(a_i=M_{i}^{-1}*M_{i-1},M_{i-1}^{-1}=M_{i}^{-1}*a_i\)
卡特兰数
递推式:
- \(C(n)=C(0)C(n-1)+C(1)C(n-2)+..+C(n-1)C(1)\)
- \((n-3)C_n=\frac{n}2(C_3C_{n-1}+C_4C_{n-2}+..+C_{n-1}C_{3})\)
- \(h(n)=h(n-1)*(4*n-2)/(n+1)\)
表达式:
- $C_n=\frac{\dbinom{n}{2n}}{n+1}=\dbinom{n}{2n}-\dbinom{n-1}{2n} $
- 特别的 \(C_1=C_0=1\)
用途:
-
出栈入栈的顺序个数
设有 \(n\) 个数时,方案数为 \(f(n)\)
则有 \(f(n)=f(n-1)f(0)+f(n-2)f(1)+..+f(0)f(n-1)\)
特别的 \(f(1)=f(0)=1\)
-
在一个凸多边形中,通过若干条互不相交的对角线,把这个多边形划分成了若干个三角形。
设 \(f(n)\) 代表边数,则有 \(f(n)=f(0)*f(n)+f(1)*f(n-1)+...+f(n)f(n)\)
特别的 \(f(3)=f(2)=1\) ,则易得 \(f(n)=C(n-2)\)
-
给定N个节点,能构成 \(C_n\) 种不同的二叉搜索树。
-
有 \(n\) 对括号,其正确排列的个数为 \(C_n\)
P3200 [HNOI2009]有趣的数列
题意简述
一个数列,满足 \(a_{2i}<a_{2(i+1)},a_{2i-1}<a_{2(i+1)-1},a_{2i-1}<a_{2i}\)
由此可得:
对于每一个偶数位 \(2i\) 都满足其大于之前的所有数,并且 \(a_{2i}>=2i\)
所以转化题意:将 \(2*n\) 个数,以此填入最左边的奇数位或者偶数位。
可以证明,当我们加入一个数 \(j\) 后,要保证在奇数位上的数字的个数不少于在偶数位上的。
证明:
我们假设已经填了 \(2a\) 个数,奇数位偶数位各 \(a\) 个,此时下一个数为 \(2a+1\) ,下一个偶数位的最小要求为 \(2(a+1)\) ,此时无论如何第 \(2a+1\) 个数都不可以填入偶数位中,只可以填入奇数位。
所以此时就变成了卡特兰数的推到过程,设在偶数位加数为 \(-1\) ,奇数位加数为 \(1\) ,求保证随时前缀和和为非负数的方案有多少种。
自然为 \(\frac{\C(2n,n)}{n+1}\)
注意模数不一定为质数,所以以使用唯一分解定理约分。
高斯消元
例题
P2447 [SDOI2010] 外星千足虫
其实和一般的高斯消元差不多,但是由于只考虑其自己的奇偶性,所以将加减改为取亦或就可以了
矩阵
目前看到的大多为和图论结合题目
例题
P6190 [NOI Online #1 入门组] 魔法
用弗洛伊德+矩阵加速
可以看到,当我们算出使用了一次魔法的邻接矩阵的 \(n\) 次方
即可算出使用了 \(n\) 次魔法的邻接矩阵
期望
一般和其他的数论一起考