首页 > 其他分享 >lg组合计数

lg组合计数

时间:2024-08-09 12:16:38浏览次数:6  
标签:lg 组合 计数 sum 2950259 括号 choose stirb

组合计数

关于记号

\[C_n^m={n\choose m}=A_n^m/m!=n^{\underline{m}}/m! \]


插板法

  • 插板法:分集合问题 \(\iff\) 不定方程正整数解计数问题

    \[{n-1\choose m-1} \]

    创造条件法(构造双射),即,构造元素集合 \(A,B\),以及一个 \(A,B\) 之间的双射 \(f\),则把计数 \(A\) 变成计数 \(B\) 。

    如果允许集合为空,则问题可以转化为添加 m 个球时不允许为空的问题

  • 不定方程解计数:有上界。难以处理,可以采用容斥。枚举几个大于限制,则能够求出至少 \(i\) 个大于 \(k\) 。

    基本容斥思想:总共减去不符合的等于答案==交集等于全集减补集并集

    \[\begin{aligned} \]

&+(-1)^{m-1}\sum_{a_i<a_{i+1} }\left|\bigcap_{i=1}{m}S_{a_i}\right|+\cdots+(-1)|S_1\cap\cdots\cap S_n|
\end{aligned}

\[ - 问题4:容斥思想2:恰好等于k==(<=k)-(<=k-1) ## Catalan和折线法 - 格路计数:**构造双射** 路线<==>操作序列 - 括号匹配问题:**构造双射** 括号序列<==>左括号是向右走,右括号是向上走 **定理 合法括号序列的充分必要条件** > 一个括号序列是合法括号序列,当且仅当它满足: > > - 对于所有前缀,左括号数量大于等于右括号数量 > > - 对于整个序列,左括号数量等于右括号数量 这在转化后的问题上等价于不碰到 y=x+1 并走到 (n,n) 考虑计数不符合的路径,发现这些路径都满足与 y=x+1 有交点 那么这些路径沿着交点翻折,则可以证明这些不合法路径与到达 (n-1,n+1) 的所有路径构成双射,从而容斥一步,得到 Catalan 数的定义。 \]

H_n = \binom{2n}{n} - \binom{2n}{n-1}

\[ 本方法叫做 **折线容斥** ![](/i/l/?n=23&i=blog/2950259/202408/2950259-20240809120758187-1777564574.png) - [JLOI2015] 骗我呢:性质1:每行都有恰好一个 [0,m] 中没有出现 ![](/i/l/?n=23&i=blog/2950259/202408/2950259-20240809120800180-73514330.png) 式子的系数很简单,则可以 **在网格图上画出转移**,可转化为不碰到两条直线的路径数。 ## Stirling 类似 dp 思路 - 第一类 Stirling 数:求把 $n$ 个不同元素构成 $m$ 个非空圆排列的方案数。 第二类 Stirling 数 :求把 n 个不同元素划分 m 个非空子集的方案数 \]

\def\stira#1#2{\begin{bmatrix}#1\ #2\end{bmatrix}}
\def\stirb#1#2{\begin{Bmatrix}#1\ #2\end{Bmatrix}}
\stira{n}{k}=\stira{n-1}{k-1}+(n-1)\stira{n-1}{k}\
\stirb{n}{k}=\stirb{n-1}{k-1}+k\stirb{n-1}{k}

\[ dp 思想:第一类乘上 n-1 是因为把它放在某一个元素的左边,第二类乘上 k 是因为前面集合不区分顺序 - 普通幂转下降幂公式: \]

\def\stira#1#2{\begin{bmatrix}#1\ #2\end{bmatrix}}
\def\stirb#1#2{\begin{Bmatrix}#1\ #2\end{Bmatrix}}
mn=\sum_{i=0}m{\stirb{n}{i}m^{\underline{i}}}

\[ 组合意义易证。注意这个求和的上标,只要大于 $\min\{n,m\}$ 即可(要么就是集合不够要么就是元素不够) - CF1278F Card 推推推推推推推推推 - 自然数幂和: 需要一个 **上指标求和公式** : \]

\sum_{i=0}^n{i\choose k}={n+1\choose k+1}

\[ 证明1 该问题可以与 $n+1$ 个元素的 $k+1$ 大小子集个数建立双射,原因如下: \]

{n+1\choose k+1}=\sum_{i=1}^{n+1} { i-1\choose k}=\sum_{i=0}^{n} { i\choose k}

\[ 以上求和的意义是枚举其中一个元素的位置。 证明2 当然上述公式求和的下标还可以改为 $i=k$ ,此时补充一个 ${k\choose k+1}$ (?) 证明3 按照递推公式依次展开可以得到。 - 自然数幂和-拉格朗日插值 $n+1$ 个点值可以唯一确定一个 $n$ 次多项式。使用: \]

f(x) = \sum_{i=1}^{n} \prod_{j\neq i }\frac{x-x_j}{x_i-x_j} y_i

\[ 将点值带入易证 ![](/i/l/?n=23&i=blog/2950259/202408/2950259-20240809120801501-177763048.png) ## 其他模型 - AGC013D:转化问题是比较容易的。重复处理:对于所有平移可以产生的重复方案,我们强制其“贴边界”(即曾经到底过0)才记录答案,考虑设 ![](/i/l/?n=23&i=blog/2950259/202408/2950259-20240809120802790-352985691.png) - CF1895F:关键转化:**弱化限制/差分法** ![](/i/l/?n=23&i=blog/2950259/202408/2950259-20240809120803977-1713188252.png) 正确性显然。 条件2让我们想到差分数组,该条件可以转化为差分数组取值在 $[-k,k]$ 之内 现在还需要表达最小值的限制,我们可枚举最小值的限制,配合计算差分数组的数量,可以知道这一部分答案是 $(x+k)(2k+1)^{n-1}$ 对于最大值那一部分的答案,考虑 $x$ 很小,设 $f_{i,j}$ 表示填了 $i$ 个数,最后一个是 $j$ ,可以矩阵快速幂计算。 \]

标签:lg,组合,计数,sum,2950259,括号,choose,stirb
From: https://www.cnblogs.com/haozexu/p/18350552

相关文章

  • 网课-组合数学学习笔记2
    插板法\(n\)个无标号物品分成\(m\)个有标号组。非空:\[\dbinom{n-1}{m-1}\]空:\[\dbinom{n+m-1}{m-1}\]构造一一对应的转化:现有两个集合\(A,B\)。如果所有\(A\)中的元素都能够映射到\(B\)中,则\(|A|\le|B|\);反之,如果\(B\)能映射到\(A\),则\(|B|\le|A|\)......
  • Python 类型提示:显式排除无效的重载组合?
    我有一个带有两个参数的函数,每个参数都可以采用两种类型之一。四个成对组合中的三个有效,但第四个无效。我想找到一种方法来键入提示此场景,可以检查这些类型,但不一定每次调用foo()时都必须编写代码来检查无效情况。有没有办法可以改进foo()、bar()或两......
  • jwt伪造身份组组组合拳艰难通关
    前言现在的攻防演练不再像以往那样一个漏洞直捣黄龙,而是需要各种组合拳才能信手拈来,但是有时候使尽浑身解数也不能称心如意。前期信息收集首先是拿到靶标的清单访问系统的界面,没有什么能利用的功能点首先进行目录扫描,扫描发现存在xxx.zip的文件放置在web目录上一般zip文件......
  • NOIP模拟 三元子序列计数
    题意给一个长度为\(n\)的排列\(a\),和一个\(3\)的排列\(p\)。求问\(a\)有多少长度为\(3\)的子序列,满足将其中的元素从小到大编号后为\(p\)。思路仔细手玩一下会发现很难找到一个对于任意\(p\)的通解,实际上\(p\)的情况可以做一些合并:原\(p\)归约方法(对于\(......
  • C++ Rect And Point Search Algorithm
    测试 ////Createdbywwwon2024/8/8.//#include"include/cxstructs.h"#include"include/cxml/k-NN.h"//可扩展Rect内搜索子Rect或PointvoidtestRectSearch(){usingnamespacecxstructs;std::random_devicerd;std::mt19937gen(rd()......
  • 将二维数组与一维数组合并
    我目前np.append与两个数组组合,但它不能工作,它显示:ValueError:alltheinputarraydimensionsexceptfortheconcatenationaxismustmatchexactly,butalongdimension0,thearrayatindex0hassize64andthearrayatindex1hassize0这是我的......
  • 代码随想录day23 || 39 组合总和,40 组合总和2,131 分割回文串
    39组合总和funccombinationSum(candidates[]int,targetint)[][]int{ //思路,组合问题考虑回溯算法,考虑到元素可能重复问题,所以,树的最大深度应该是target/min(candudates)+1 varpath=[]int{} varres=[][]int{} backtracking(target,candidates,&path,&res......
  • permutation 不仅仅排列,组合也可以
    排序:1——n所有不重复的排列include<bits/stdc++.h>usingnamespacestd;inta[10];intmain(){intn,i,j=1,k;cin>>n;for(i=1;i<=n;i++){a[i]=i;//a[1~n]=1——n}do{for(k=1;k<=n;k++)printf("%5d",a[k]);printf("\n");}whi......
  • lg-dp1
    记忆化搜索:记忆化压缩DP状态(一些期望dp里会用)剪枝递推:保证前面的部分已经计算了数位dp求\([l,r]\)之内满足某种限制的数的个数,该限制应该是与数位有关系的。带不带前导0取决于是否对统计答案造成影响。前缀和转化:只有上界补充题:如果lim=1的时候前面都......
  • ImportError:无法从“jwt.algorithms”导入名称“RSAAlgorithm”
    RSAAlgorithmPyJWT算法方法无法导入,但我确实安装了PyJWT错误:ImportError:cannotimportname'RSAAlgorithm'from'jwt.algorithms'我通过运行以下命令检查了该包是否可用:poetryshow|grep-ipyjwtpyjwt2.9.0J......