组合数学常用内容——基础内容+莫比乌斯反演

2024-04-08 00:58

本文主要是介绍组合数学常用内容——基础内容+莫比乌斯反演,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

组合数学常用公式

A(n,r)=n(n-1)…(n-r+1)=n!/(n-r)!C(n,r)=A(n,r)/r!=n!/((n-r)r!)C(n,r)=C(n,n-r)C(n,r)=C(n-1,r)+C(n-1,r-1)C(n+r+1,r)=C(n+r,r)+C(n+r-1,r-1)+…+C(n+1,1)+C(n,0)C(n,k)C(k,r)=C(n,r)C(n-r,k-r)C(n,k+1)=C(n,k)*(n-k)/(k+1)重复排列:n^r;可重复组合:C(n+r-1,r)不相邻组合:C(n-r+1,r)圆周排列:A(n,r)/r项链排列:A(n,r)/2r多重全排列(r1个a1,r2个a2……组成n位串):n!/(r1!*r2!*…)多项式的n次方的某项系数:(a1+a2+…+at)^n=∑n!/(r1!r2!…rt!)*(a1^r1*a2^r2*…*at^rt)错排递归公式:f(i) = (i - 1) * (f(i - 1) + f(i - 2));  i >= 4 (f(0) = 0, f(1) = 0, f(2) = 1, f(3) = 2)
(错排:n个节点它们原来的位置为i,然后让你把它们从新排列使得它们都不在它们原来的位置上。)

组合数预处理

typedef long long ll;
const int MAXN = 42;
ll c[MAXN][MAXN];void init(){
    c[0][0]=1;
    for(int i=1;i<MAXN;i++){
        c[i][i]=c[i][0]=1;
        for(int j=1;j<MAXN;j++){
            c[i][j]=c[i-1][j]+c[i-1][j-1];
        }
    }
}

母函数

母函数讲解详见:
http://blog.csdn.net/vsooda/article/details/7975485

这里直接贴出我的模板,注释非常详细,知道母函数概念,下面的代码根据注释就可以理解了

int main(){int T;cin >> T;while (T--){int n, m, sub[10], num[10];//sub对应背包中的体积/重量,num对应背包中的价值int c1[41], c2[41];//c1存储系数,也就是方案数,c2存储运算中间数据提供给c1更新cin >> n >> m;

这篇关于组合数学常用内容——基础内容+莫比乌斯反演的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/884156

相关文章

C#中读取XML文件的四种常用方法

《C#中读取XML文件的四种常用方法》Xml是Internet环境中跨平台的,依赖于内容的技术,是当前处理结构化文档信息的有力工具,下面我们就来看看C#中读取XML文件的方法都有哪些吧... 目录XML简介格式C#读取XML文件方法使用XmlDocument使用XmlTextReader/XmlTextWr

0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型的操作流程

《0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeekR1模型的操作流程》DeepSeekR1模型凭借其强大的自然语言处理能力,在未来具有广阔的应用前景,有望在多个领域发... 目录0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型,3步搞定一个应

如何解决Pycharm编辑内容时有光标的问题

《如何解决Pycharm编辑内容时有光标的问题》文章介绍了如何在PyCharm中配置VimEmulator插件,包括检查插件是否已安装、下载插件以及安装IdeaVim插件的步骤... 目录Pycharm编辑内容时有光标1.如果Vim Emulator前面有对勾2.www.chinasem.cn如果tools工

CSS弹性布局常用设置方式

《CSS弹性布局常用设置方式》文章总结了CSS布局与样式的常用属性和技巧,包括视口单位、弹性盒子布局、浮动元素、背景和边框样式、文本和阴影效果、溢出隐藏、定位以及背景渐变等,通过这些技巧,可以实现复杂... 一、单位元素vm 1vm 为视口的1%vh 视口高的1%vmin 参照长边vmax 参照长边re

C#比较两个List集合内容是否相同的几种方法

《C#比较两个List集合内容是否相同的几种方法》本文详细介绍了在C#中比较两个List集合内容是否相同的方法,包括非自定义类和自定义类的元素比较,对于非自定义类,可以使用SequenceEqual、... 目录 一、非自定义类的元素比较1. 使用 SequenceEqual 方法(顺序和内容都相等)2.

Python中操作Redis的常用方法小结

《Python中操作Redis的常用方法小结》这篇文章主要为大家详细介绍了Python中操作Redis的常用方法,文中的示例代码简洁易懂,具有一定的借鉴价值,有需要的小伙伴可以了解一下... 目录安装Redis开启、关闭Redisredis数据结构redis-cli操作安装redis-py数据库连接和释放增

一文详解Python中数据清洗与处理的常用方法

《一文详解Python中数据清洗与处理的常用方法》在数据处理与分析过程中,缺失值、重复值、异常值等问题是常见的挑战,本文总结了多种数据清洗与处理方法,文中的示例代码简洁易懂,有需要的小伙伴可以参考下... 目录缺失值处理重复值处理异常值处理数据类型转换文本清洗数据分组统计数据分箱数据标准化在数据处理与分析过

Java中Object类的常用方法小结

《Java中Object类的常用方法小结》JavaObject类是所有类的父类,位于java.lang包中,本文为大家整理了一些Object类的常用方法,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. public boolean equals(Object obj)2. public int ha

Java 字符数组转字符串的常用方法

《Java字符数组转字符串的常用方法》文章总结了在Java中将字符数组转换为字符串的几种常用方法,包括使用String构造函数、String.valueOf()方法、StringBuilder以及A... 目录1. 使用String构造函数1.1 基本转换方法1.2 注意事项2. 使用String.valu

使用C#代码计算数学表达式实例

《使用C#代码计算数学表达式实例》这段文字主要讲述了如何使用C#语言来计算数学表达式,该程序通过使用Dictionary保存变量,定义了运算符优先级,并实现了EvaluateExpression方法来... 目录C#代码计算数学表达式该方法很长,因此我将分段描述下面的代码片段显示了下一步以下代码显示该方法如