首页 > 编程语言 >《算法竞赛》07 组合数学

《算法竞赛》07 组合数学

时间:2024-01-18 13:56:12浏览次数:26  
标签:dots lfloor 竞赛 frac 07 bmod 算法 frac1 binom

二项式定理

  • \((a+b)^n=\sum_{i=0}^n\binom nia^ib^{n-i}\)。
  • 杨辉三角每个数对应一个组合数。

卢卡斯定理

  • \(m\) 为质数时 \(\binom nm\bmod p=\binom{n\bmod p}{m\bmod p}\cdot\binom{\lfloor\frac np\rfloor}{\lfloor\frac mp\rfloor}\bmod p\)。
  • 有时候结合递归,对 \(\binom{\lfloor\frac np\rfloor}{\lfloor\frac mp\rfloor}\) 部分继续使用卢卡斯定理。

容斥原理

  • 不存在不符合条件(也就是符合条件)的元素的方案数等于:

    \(\sum(-1)^{|S|}f(S)\)

  • DP 的时候经常不记录 \(|S|\),而是乘上容斥系数(\(1\) 或 \(-1\))。

Catalan 数和 Stirling 数

  • 卡特兰数 \(C_n=\frac1{n+1}\binom{2n}n=\sum_{i=0}^nC_iC_{n-i}=\frac{4n-2}{n+1}C_{n-1},C_0=1\)。
  • 卡特兰数的一种意义:\(n\) 个左括号 \(n\) 个右括号组成的合法括号序数。
  • 第一类斯特林数:将 \(n\) 个不同的元素分配到 \(k\) 个圆排列里,圆不能为空,有多少种分法。\(S(n,k)=s(n-1,k-1)+(n-1)\times s(n-1,k)\)。
  • 第二类斯特林数:将 \(n\) 个不同的求分配到 \(k\) 个相同的盒子里,不能有空盒子,有多少种分法。\(S(n,k)=kS(n-1,k)+S(n-1,k-1)\)。

Burnside 定理和 Pólya 计数

  • ???看不懂一点。

母函数

  • 普通型母函数定义:对于序列 \(h_0,h_1,\dots\),构造函数 \(f(x)=h_0+h_1x+\dots。\)
  • 指数型母函数定义:对于序列 \(h_0,h_1,\dots\),构造函数 \(f(x)=\frac{h_0}{0!}+\frac{h_1}{1!}x+\dots。\)
  • 泰勒级数展开:
    • \(\frac1{1-x}=1+x+x^2+\dots\)
    • \(e^x=1+\frac1{1!}x+\frac1{2!}x^2+\frac1{3!}x^3+\dots\)

公平组合游戏(博弈论)

标签:dots,lfloor,竞赛,frac,07,bmod,算法,frac1,binom
From: https://www.cnblogs.com/dks-and-xiao-yu/p/17972345

相关文章

  • 用余弦相似度修正评分的协同过滤推荐算法
    前言今天读的这篇论文是一篇于2020年6月份发表在计算机工程与科学(ComputerEngineering&Science)上的一篇论文。论文采用评分矩阵的多种维度进行相似度比较以修正不合理评分,再用修正后的评分进行协同过滤推荐。利用MovieLens和BookCrossing数据库进行实验,结果表明:带修正评分......
  • 玩玩算法题——Episode 2
    Leetcode每日一题:最大字符串匹配数目题干如下:给你一个下标从0开始的数组words,数组中包含互不相同的字符串。如果字符串words[i]与字符串words[j]满足以下条件,我们称它们可以匹配:字符串words[i]等于words[j]的反转字符串。0<=i<j<words.length请你返回数组......
  • 贪心算法-题目1力扣455(简单题)
    力扣455,给小朋友发饼干假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。对每个孩子 i,都有一个胃口值 g[i],这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j,都有一个尺寸 s[j] 。如果 s[j]>=g[i],我们可以将这个饼干 j 分配......
  • 算法—差分
    1.一维差分(实质:前缀和的逆运算)给区间[l,r]中的每个数加上c:B[l]+=c,B[r+1]-=c上述操作可以免去构造一个新数组,可以直接给差分赋值2.二维差分给以(x1,y1)为左上角,(x2,y2)为右下角的子矩阵中的所有元素加上C:S[x1,y1]+=c,S[x2+1,y1]-=c,S[x1,y2+1]-=c,......
  • 2024/1/17 算法笔记
    1.欧拉质数筛功能是给一个整数n查找小于等于n的所有质数。最后使用的是prime【i】//功能:查找n内第x个质数。boolisprime[100000010];//isprime[i]=1表示:i是素数intprime[6000010],cnt=0;//prime存质数voidgetprime(intn){//筛到n也就是n以内的质数memset(is......
  • 算法笔记之图论
    打开转盘锁你有一个带有四个圆形拨轮的转盘锁。每个拨轮都有10个数字:'0','1','2','3','4','5','6','7','8','9'。每个拨轮可以自由旋转:例如把'9'变为'0','0'变为......
  • 【APP逆向07】字符串与字节的转换
    1.逆向的时候,很多时候字符串都是通过字节来表示的importjava.util.Arrays;publicclassHello{publicstaticvoidmain(String[]args){//1.字节数组(转换为字符串)[字节,字节,字节]byte[]dataList={97,105,100,61,50,52,54,51,56,5......
  • 算法笔记
    1.回溯法(Backtracking)应用:组合、排列、子集等组合型问题,0/1背包问题、图的着色问题等。时空复杂度:时空复杂度较高,指数级别。时间复杂度:O(2^n)或更高,其中n是问题规模。空间复杂度:O(n)或更高,取决于递归深度。特性:通过深度优先搜索遍历解空间。需要撤销选择,回溯到上一步......
  • 学习笔记——ST算法
    ST算法ST算法是一种运用倍增来解决RMQ问题也就是区间最值问题的算法。给定一个长度为\(N\)的序列\(A\),ST算法能在\(\mathcalO(NlogN)\)的时间预处理后,以\(\mathcalO(1)\)的时间在线回答区间最值问题。设\(F_{i,j}\)表示序列\(A\)中下标在子区间\(\left[i,......
  • 算法—前缀和
    1.一维前缀和S[i]=a[1]+a[2]+...a[i]//求s[n]a[l]+...+a[r]=S[r]-S[l-1]//求l-r的序列和2.二维前缀和S[i,j]=s[i][j]=s[i-1][j]+s[i][j-1]-s[i-1][j-1]+a[i][j];第i行j列格子左上部分所有元素的和以(x1,y1)为左上角,(x2,y2)为右下角的子矩阵的和为:S[......