noip复习之数学(1)——基本计数
1.加法原理:
各个事件互相独立。做一件事有n种方法,第i种方法有pi种方案,则一共有p1+p2+p3+...+pn种方案。
2.乘法原理:
各个事件相互关联。做一件事有n个步骤,第i个步骤有pi种方案,则一共有p1p2p3...pn种方案。
3.容斥原理:


4.常见的计数问题
问题一:有n个不同的数,选k个排成一排,每个数最多选一次,问有多少种排列方法
\(ans=P(n,k)=n*(n-1)*(n-2)*(n-3)*...*(n-k+1)=n!/(n-k)!\)(当n=k时为n!)
问题二:组合问题:同上,但无关顺序
\(ans=C(n,k)=n!/(m!(n-m)!)\)
组合数的几大性质:1.\(C(n,0)=C(n,n)=1\)
2.\(C(n,m)=C(n-1,m)+C(n-1,m-1)\)
3.\(C(n,k)=C(n,n-k)\)
4.\(C(n,k+1)=C(n,k)*(n-k)/(k+1)\)
问题三:有k个元素,其中第i个元素有ni个,求全排列的个数
\(ans=(n1+n2+...+nk)!/(n1!*n2!*n3!*...*nk!)\)
问题四:有n个不同元素,每个元素可以选多次,一共选k个元素,有多少种方法
解答:设第i个元素选xi个,则问题转化为求x1+x2+...+xn=k的非负整数解的个数,令yi=x+1,则答案为y1+y2+...+yn=k+n的正整数解的个数,使用隔板法,则答案为C(k+n-1,n-1)=C(k+n-1,k)(即选n-1个位置放隔板,将其分成n部分)
\(ans=C(k+n-1,n-1)=C(k+n-1,k)\)
问题五:给定空间中n(n<=1000)个点,其中没有三点共线。每两个点之间都用红色或者黑色线段连接。求3条边同色的三角形个数。
分析:从反面考虑,求非单色三角形。在每个非单色三角形中,恰好有两个顶点连接两条异色边(不包含不在此三角形中的边)。如果一个顶点连接了ai条红边和n-1-ai条黑边,则这些边属于ai*(n-1-ai)个非单色三角形。又由于每个非单色三角形考虑了两次(对于d顶点,它与e定点一同连接了一条红边,若d,e,f三个顶点共同组成了一个非单色三角形,我们假设d和e分别连接了两条异色边,则此三角形一定被且只被计算了两次,见黑体字或画图尝试),故非单色三角形的个数为
较难例题(UVa11401 Triangle Counting)
题意:
有多少种方法可以从1,2,3,...,n(n<=1e6)中选出3个不同的整数,使得以他们为三边长可以组成三角形
分析:写这道题的分析的时候已经是第三次看这道题了,尝试不看汝佳大神的题解自己口胡一遍。
我们不妨先假设x为三角形中的最长边,且z<y<x,对于这样能组成三角形的三边x,y,z,一定满足三角形不等式,也即x-z<y<x<x+z,后面<=x+z的部分因为有了y<x,也就是我们假设的条件的存在,已经失去了其价值,所以我们可以大胆舍弃掉这个条件,所以最后得到的不等式应为x-z<y<x。
(注意一下以下过程中我们枚举的应是z的大小,因为这样才能确定出y的解的个数,这次又卡在这里了)
当z=1,y无解;
当z=2,y一解(y=x-1)
当z=3,y两解(y=x-1,y=x-2)
...
通过数学归纳法,我们可以发现当z=t时,y有t-1个解,所以最终答案为1+2+...+(x-2)+(x-1),然后你高兴地打完程序提交,结果却出乎意料,你在众多AC提交中成为了那鲜红的一抹WA
原因在哪里呢?关键就在于题干中所说的不同,我们得到的答案中包括了y=z的情况,同样重要的是我们把每个三角形都算了两遍,并没有完成z<y的约束,所以我们考虑剔除掉这些情况。
解决方法很简单(就怪了),对于每一个x,从y=x/2+1开始算起,到y=x-1为止,总共有
主要难理解这个式子的原因是向下取整,或许你自己写的时候是可以分奇偶讨论的,如:
令c(x)为最大边长为x的三角形的个数,则
\(f(n)=c(1)+c(2)+...+c(n)=f(n-1)+c(n)\)
浙公网安备 33010602011771号