数学专题总结

                        数学总结

在感受了picks的课后,发现OI中的数学是非常难的。虽然最近考试的题目并不难,但由于我天生推不出公式想不出数学方法智商捉急的基因导致各种考试想不到,主要原因还是做题做少了,方法知识不够健全,还是有必要总结一下的。

求一个数对于mod的逆元:

费马定理:

P为素数,a为正整数,a与P互质,则a^(p-1) ≡ 1 (mod p)

所以一个数的逆元就是a^(p-2)

应用:在取模的情况下做除法

拆分一个数:

(1) 唯(惟)一分解定理

若整数a≥2,那么a一定能分解成若干个素数的乘积(唯一的形式)。ep. 1260=2*2*3*3*5*7.

要拆一个数较快的方法:先筛素数,然后把每个数的最小质因子记录下来,最后要用哪个数就拆哪个数。

应用:

求约数和,求约数个数(每个质数的幂+1的积),然后还有各种题目问的畸形问题

拓展欧几里德原理 ax+by=c

先求出gcd d,看c是否整除d判断无解,然后把a/d,b/d,c/d,求出x,y就是一组解

p * a+q * b = c的其他整数解满足:

p = p1 + b/Gcd(a, b) * t

q = q1 - a/Gcd(a, b) * t(其中t为任意整数)

p 、q就是p * a+q * b = c的所有整数解。

所以x的最小正整数解就是((x*c)%b+b)%b,y也是同理

应用:各种追击问题,相遇问题问最小步数操作数什么的,还有解模线性方程,跟孙子定理也有关

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

对于一个X≡2 (mod 3) X≡3 (mod 5) X≡2 (mod 7)解方程

可以转化为

3个模方程组,

x≡1(mod 3) x≡0(mod 3) x≡0(mod 3)

x≡0(mod 5) x≡1(mod 5) x≡0(mod 5)

x≡0(mod 7) x≡0(mod 7) x≡1(mod 7)

最后再乘以除掉的系数模掉原来的模值就能得到x的最小解了

2 *70+3*21+2*15≡23(mod 105)

欧拉定理 a?φ(n)≡1modn

欧拉函数φ(x)

? 表示1~x所有与x互质的数

? 积性函数

? 计算公式

? 性质

? 应用 计算与某个x的gcd为定值k的数的数量:φ(x/k)等

? 例题 [BZOJ 2705][BZOJ 2818]

欧拉定理

? 推广 对任意于a,n 有an≡anmodφ(p)+φ(p)modp

对于互质的a,n 有 an≡anmodφ(p)modp

简单的计数

容斥原理

o DeMorgan定理

o 错排问题 递推式f[n]=(n-1)*(f[n-1]+f[n-2]);

就是我容斥一直没理解,然后连考了2天容斥都打挂

有两种不同的类型,一种是由于社么什么限制,求方案数,这时就假设没限制预处理出所有情况的方案数在数组中,然后

void dfs(long long x,long long y)
{
    if(m<0)
        return;
    if(x>k)
    {
        if(y&1)
            ans=(ans-f[m])%mod;
        else
            ans=(ans+f[m]+mod)%mod;
        return;
    }
m-=l[x]+1;    //因为第x钟至少要l[x]+1个才超限,m剩下的就是这n个随便配的数量,包括第x个(因为可能有l[x]+2,l[x]+3个的可能性)
dfs(x+1,y+1);
m+=l[x]+1;
dfs(x+1,y);

}

另一种就是在区间中去哪些数字的倍数或者不去那些数字的倍数:

    void dfs(long long x,long long y,long long z)
{
    if(x>n)
    {
        if(y&1)
            ans-=r/z-(l-1)/z;
        else
            ans+=r/z-(l-1)/z;
        return;
    }
    dfs(x+1,y,z);
    double tmp=(double)b[x]*z/gcd(z,b[x]); //double存的数比long long 高,但具体值会出错
    if(tmp<=r)                    //求之前选了的数与现在要选的数的lcm
        dfs(x+1,y+1,tmp);
}

应用:一些求方案数,[l,r]区间中有多少xx的数字之类的问题

莫比乌斯反演:

本质还是容斥,

莫比乌斯函数

? 定义 略

? 性质 (二项式定理证明)

? 积性函数

? 线性筛

可以通过求一些可以直接求的东西反演得到一些不好求的东西

莫比乌斯反演定理

? 第二个在求gcd等问题中非常常见

说到求反演后的值,一个很喜闻乐见的优化就是下底函数分块。

比如F(d)=(n/d)*(m/d) 我们会发现n/d,m/d的值会在不同的区间一样,

比如当前区间的第一个为i,那么这个区间的最后一个就是min(n/(n/i),m/(m/i))然后+1就得到了下个区间的第一个,这样我们对莫比乌斯函数进行一个前缀和的预处理,就能在计算时大大优化。

然而我经常推不出反演的式子

组合:

有很多思维方法可以帮助找出组合数。

比如想象出插杆子把一些东西分开,有多少个空插,

或者就对某一个进行考虑,然后乘上所有的个数。

求C的化一般就是暴力+求逆元除

Lucas定理在取模值比较小的时候能跟快的求出C:

Lucas(m,n)=C(m/p,n/p)*C(m%p,n%p)%p=Lucas(m/p,n/p)*C(m%p,n%p)%p。

然而组合的式子我还是经常性的想不到推不出,还是自己弱,需要多练习

斐波那契数列:

求gcd中,递归次数最多。

当且仅当M是N的倍数时,Fn是Fm的约数!

使用矩阵乘法快速幂得到F[I]

卡特兰数列。

o 通项公式 有时候因为题目要求不同,转化成C(2n,n)/(n+1)也是一样的

o 递推关系

f(n)=f(n-1)*(4*n-2)/(n+1);也是一样的

应用:

括号化问题。出栈次序问题。将多边行划分为三角形问题。给顶节点组成二叉树的问题。

一一对应:

什么向南走想北走不能走到北方啊,在坐标轴里走不能越界啊之内的,就是一个思想,想上走一步越界的情况和向下走一步每越界的情况是一样的方案数,所以就是C(M+N,N)-C(M+N,X+1)或者x-1,要看题目意思。

然而我对这个思想并不是通透。。只会通过对拍来乱高出组合式

最后就是一些筛法,贴个我的博客的网址把er。

http://blog.csdn.net/liufengwei1/article/details/46800169

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-08-02 22:44:06

数学专题总结的相关文章

数论与数学专题练习(一)(201802~201805)

手动博客搬家: 本文发表于20180224 00:33:28, 原地址https://blog.csdn.net/suncongbo/article/details/79357927 上次打cf的时候一道水水的数论题(强推式子)都没有做出来,于是决定开始数论专题练习. 以后将不断进行update. 刷题记录 UPD1. T1. (20180214) AC codeforces 933B http://codeforces.com/problemset/problem/933/B 题解: 略 UP

[考试反思]数学专题测试4:深度

高斯消元专题测试 联赛后第一次爆零???我也不知道发生了什么 感觉和放假的关系不大啊... 虽说题比平时难而且数据范围出了一点锅,但是爆零有点过了?? 一眼看T3,MatrixTree啊肯定的,然后想到之前做的那个不等式的那道题直觉是容斥. 结果又想到了那个专题里幻想乡的那道题,于是更加笃定是容斥,结果思路就阻塞了. 20分的部分分好像很难写,就往后放了放,结果最后并没有时间写. 然后看起来比较简单的是T2,直到看到数据范围之前我都认为应该不会太难. 基础式子都会写,然后组合数忘记特判不合法的0

数学专题

hdu2824 欧拉函数模板 #include<bits/stdc++.h> using namespace std; const int N=3000010; int prime[N],isprime[N]; int phi[N]; void get_phi(){ int i,j,cnt=0; for(i=2;i<N;i++) { if(isprime[i]==0){ prime[cnt++]=i; phi[i]=i-1; } for(j=0;j<cnt && i

数学专题测试2

先放代码 1 #include<bits/stdc++.h> 2 using namespace std; 3 typedef long long LL; 4 const int mod=1e6+3,N=6e4+5; 5 inline int read(int x=0,bool f=0,char ch=getchar()){ 6 for(;!isdigit(ch);ch=getchar()) f=ch=='-'; 7 for(; isdigit(ch);ch=getchar()) x=(x&l

Cocos3D专题课程源码地址

源码地址 https://github.com/super626/LessonDemo cocos2d引擎版本3.7以上 下载后放置在LessonDemo/cocos2d目录下 MAC配置文件 LessonDemo/proj.ios_mac/LessonDemo.xcodeproj,直接用Xcode打开(Xcode5.1以上).编译桌面版和iOS版. win32配置文件 LessonDemo/proj.win32/LessonDemo.sln,用Visual Studio 2012以上版本打开,

一些对数学领域及数学研究的个人看法(转载自博士论坛wcboy)

转自:http://www.math.org.cn/forum.php?mod=viewthread&tid=14819&extra=&page=1 原作者: wcboy 现在的论坛质量比以前差了,大部分都是来解题问答的,而且层次较低.以前论坛中,Qullien很令人印象深刻,但愿他能在国外闯出一片天空.现在 基础数学版代数&数论子版中那几个讨论代数几何的还不错.不期望目前论坛出现很多高层次高手,高层次高手应该站在好课题上高观点讨论数学,出 现这样的网友,看他们的言论非常过

青岛MBA辅导哪家好 2015考研数学暑期复习:读透教材 完爆基础

七月暑假来临,相信大部分同学已经开始了强化复习的准备工作,但是上一段的复习有没有进行好总结规划呢?太奇考研数学老师题型广大2015考生暑期强化复习前将基础阶段做一总结,知道自己的掌握程度才好进行下一阶段复习.关注更多考研数学复习方法,请关注太奇考研数学专题页面. 应该会有很多人不以为难,我想你应该在你有课本的第一页空白处画一条线表示你的考研数学目标,再画第二条线表示你当前的学习水平.在最上面写上你最喜欢的一句话,例如我自己写的是:要成功就不要有借口.每天都做这个理想图一次,每一次不开心时也看一次

真的猛士,敢于开数学!!!!!

dp专题看得差不多了,本来是想看图论, 但是那天物理课,莫名打开了数学专题 看了一半也不太好,就先看完再说吧~ 数学专题不用markdown好难写啊 1.组合数学 UVa580 题意:一个长度为n的序列(n<=30),由若干U,L组成 有大于等于3个连续的U的序列则为危险序列 求危险序列的数量 方法一:(LRJ) f(n)=(1<<n-3) + sigma ( g(i-2)*(1<<(n-i-2) ) (i from 2 to n-2) g(i)=(1<<i)-f

BZOJ 2467 解题报告

对于一个合格的程序员来说,掌握一定的数学知识是非常必要的,所以这次就开个数学专题玩玩. 不多说啥,上题目,我们直接分析题目! 首先ORZ stonepage神犇,一眼就看出我把快速幂写成快速乘了…… 话说%2007为啥不是2007年的题?还TMD是市选,MDZZ: 算了不管他,我们说我们的: 由于题目要求一个生成树,那么我们就要保证所有的点在一个联通块里面,so,怎么做呢? 首先观察这一个图,我们很容易能发现,其实我们只需要删去n+1条边,那么怎么删呢? 首先外围的五边形只能每个最少删去一条边这