OI数学Note(基础篇)
来源:互联网 发布:金棕榈 软件 编辑:程序博客网 时间:2024/05/20 06:09
- 排列组合
- 一些基本性质和简单说明
- 一些定理和算法
排列组合
void prec(){ for(int i=0;i<=n;i++) { c[i][0]=1; for(int j=1;j<=n;j++) { c[i][j]=(c[i-1][j]+c[i-1][j-1]) } }}
一些基本性质和简单说明
首先先选一个物品出来
1:这个物品并不属于实际选的m个物品中,那么需要在n-1个物品中选m个
2:这个物品属于,那么需要在n-1个物品中选m-1个
答案为两种情况之和
看成一个长度为n的01串的所有可能,k为所有0的数量,以左右两边表示意义相同,相等
把r件物品分别放在n中和m中即可
若先在n-1的01串中有m-1为1,则最后一个空位必定为1,那么最后1的位置最多有n种,但其中在n-1中的1为可能重复所以需要除以m(其实我觉得这个直接用公式记忆吧,毕竟好推导一点Orz…)
这个我是真不会证(不用公式),有没有神犇知道的说一下的说,感激不尽
可重复的组合
等同于从n+m-1个元素中选出m个元素的值
一些定理和算法
卢卡斯定理:
目的:为了解决当n或者m远远大于p时不能进行运算的问题,对于C的式子,只要n或者m大于P便一直递归下去
ll lucas(ll n,ll m){ if(!m) return 1; return c[n%p][m%p]*lucas(n/p,m/p)%p;}
二项式定理
欧几里德和拓展欧几里德
int gcd(int a,int b){ return b==0?a:gcd(b,a%b);}int lcm(int a,int b){ return a/gcd(a,b)*b;}void exgcd(int a,int b,int &d,int &x,int &y) { if(!b) {d=a;x=1;y=0;} else exgcd(b,a,d,y,x),y-=x*(a/b);}
威尔逊定理
若p为质数则:
中国剩余定理
LL china(int n,int a[N],int m[N]){ LL M=1,d,y,x=0; for(int i=1;i<=n;i++)M*=m[i]; for(int i=1;i<=n;i++) { ll w=M/m[i]; exgcd(m[i],w,d,d,y); x=(x+y*w*a[i])%M; } return (x+M)%M;}
丢代码跑,真心不想写解析了太懒了
阅读全文
0 0
- OI数学Note(基础篇)
- oi笔记 数学
- 洛谷 红魔馆OI 妖梦拼木棒 [组合数学]
- (一)数学基础篇
- 数学基础:向量篇
- OI
- Oi
- Php基础数学运算篇
- R 基础绘图note
- R Note 统计基础
- 【Shader基础篇】之基础数学
- OI? OI!
- 数学基础
- 数学基础
- 数学基础
- 数学基础
- 基础数学
- 数学基础
- 事件和事件处理
- tensorflow安装正确, import tf, the problem is "Couldn't find field google.protob.ExtensionRange.options"
- C#中线程占用内存过大解决方法
- python反转字符串的几种方式
- C# 线程手册 第六章 线程调试与跟踪
- OI数学Note(基础篇)
- 【Linux】--系统vsftpd服务器安装配置(整理一)
- 8.16 恶魔城 1128
- 使用微信公众号链接进入discuz试提示"您访问的页面无手机页面" 二
- 那些复杂的列表总要弄个清楚——(三)激动人心的BaseAdapter之一
- zz-index属性
- Memory-Efficient Implementation of DenseNets
- 8.16 佳佳的魔法照片 1255
- 【正一专栏】保护孩子人人有责-评南京猥亵女童案