算法竞赛入门经典行训练指南【计数方法】------2015年1月23日
2015-01-23 22:25
274 查看
基础知识整理:
(1)加法原理
(2)乘法原理
(3)容斥原理(注意变式问题)
(4)排列组合公式的应用及变形:
排列的公式:
其变形为:
与组合的关系如下(以下第一个公式很重要):
排列组合公式的重要推论:
推论1:
对于第一个物体如果不取的话,那么我们有C(n,k+1)种方法,对于第一个物体取的话,我有C(n,k)种方法。公式得证。
推论2:
这可以降低求解二项式系数的时间复杂度,通过利用递推关系自小到大依次计算得出,方便快捷。
(5)排列组合的基本问题:
Q1:求有重复元素的排列。
有k个元素。其中第i个元素有ni个,求全排列个数。
根据排列组合基本原理有:
Q2:可重复选择的集合。有n个不同元素,每个元素可以选多次,一共选k个元素,有多少种方法?
我们可设第i个元素有xi个,问题转化为:
问题的解变化为该公式中非负整数解的个数,令
我们可以得到:
此时问题的求解变为:方程中变量为正整数解的个数。因为为正整数,那么我们可以得出一个结论:我们只能在n+k-1中插(n-1)块木板(高中的插板法)进而得到所有变量的解个数。
此时我们得到结果为:
Q3:单色三角形。给定空间的n个点,其中没有三点共线。每两个点之间都用红色或者黑色线段连接。求三条边都同色的三角形个数。
根据题意,如果直接正向枚举,那么时间复杂度过高。我们可以采取补集思想,先枚举不是单色三角形的情况。对于每一个点而言,与之相连的点共有(n-1)条边。我们可以假设和点i相连的红色边有ai条,黑边有(n-1-ai)条.那么同一点的两条不同颜色的边必定可以构成唯一的一个三角形,
那么根据乘法原理我们可以得到对于点i的非单色三角形个数为
有于一共有n个点,并且每一条边会计数两次。所以需要把累加和除以2求得最终结果为:
最后我们可以求得单色三角形数目为:
OVER~寇小编还是很用心的,希望对各位偶然逛到我博客的博主有所帮助!!!
(1)加法原理
(2)乘法原理
(3)容斥原理(注意变式问题)
(4)排列组合公式的应用及变形:
排列的公式:
其变形为:
与组合的关系如下(以下第一个公式很重要):
排列组合公式的重要推论:
推论1:
对于第一个物体如果不取的话,那么我们有C(n,k+1)种方法,对于第一个物体取的话,我有C(n,k)种方法。公式得证。
推论2:
这可以降低求解二项式系数的时间复杂度,通过利用递推关系自小到大依次计算得出,方便快捷。
(5)排列组合的基本问题:
Q1:求有重复元素的排列。
有k个元素。其中第i个元素有ni个,求全排列个数。
根据排列组合基本原理有:
Q2:可重复选择的集合。有n个不同元素,每个元素可以选多次,一共选k个元素,有多少种方法?
我们可设第i个元素有xi个,问题转化为:
问题的解变化为该公式中非负整数解的个数,令
我们可以得到:
此时问题的求解变为:方程中变量为正整数解的个数。因为为正整数,那么我们可以得出一个结论:我们只能在n+k-1中插(n-1)块木板(高中的插板法)进而得到所有变量的解个数。
此时我们得到结果为:
Q3:单色三角形。给定空间的n个点,其中没有三点共线。每两个点之间都用红色或者黑色线段连接。求三条边都同色的三角形个数。
根据题意,如果直接正向枚举,那么时间复杂度过高。我们可以采取补集思想,先枚举不是单色三角形的情况。对于每一个点而言,与之相连的点共有(n-1)条边。我们可以假设和点i相连的红色边有ai条,黑边有(n-1-ai)条.那么同一点的两条不同颜色的边必定可以构成唯一的一个三角形,
那么根据乘法原理我们可以得到对于点i的非单色三角形个数为
有于一共有n个点,并且每一条边会计数两次。所以需要把累加和除以2求得最终结果为:
最后我们可以求得单色三角形数目为:
OVER~寇小编还是很用心的,希望对各位偶然逛到我博客的博主有所帮助!!!
相关文章推荐
- 训练指南计数问题
- 训练指南-2.1-计数-uva11401数三角形-递推
- .NET 指南:实现 Equals 方法
- Oracle9iAS Containers for J2EE独立版指南--(部署servlet和JSP的方法)
- 使用PXE无盘网络克隆方法指南
- getURL函数的使用方法指南
- 胸肌训练完全指南手册
- [.NET Framework 开发员指南]实现 Dispose 方法
- 唱歌发声的基础知识与训练方法
- 听力训练的经典方法[zz]
- Struts Validator验证器使用指南和使用方法
- 在网页上打广告的好方法:Google AdSense 指南[zz]
- JAVASCRIPT加密解密终级指南 本文一共介绍了七种方法: 信息来源:《黑客防线》
- DjVu Solo使用方法指南【转贴】
- 技术评审方法与指南
- getURL函数的使用方法指南
- 《OPCDA服务器与客户程序开发指南》价格及购买方法
- DHTML初学者指南:DHTML中重要的属性方法
- .NET 指南:属性与方法之间的选择
- 口才训练方法