对于排队买票问题的一些说法.....
假若有M+ N人去买票,n人手持5元,m人手持10元,而售货阿姨没有零钱,问有多少种方法能使大家都买到票。
其中m<=n.M+N<=10;(初次在HBUOJ上看到.....)
(1) 有已知条件 m<=n; 我们就不需要去考虑m>n时的情况啦!但是即便去考虑的话,这种情况依旧为零.
因为m>n时,你不管这么排列都是不可能找开的...m*10-n*5>m*5----所以这个条件只是为我们减少了一小部分的时间.
(2) m<=n时,我们发现对于随意的第K个位置出现的10多余5的时候不可能的情况 我们都可以找到
对应的可以满足的情况 。
比如 10 5 10 10 5 5 我们只需将后面的10 和5 换一下就行, 5 10 5 5 10 10 。
再比如 10 5 10 5 5 我们只需将 5 10 5 5 10 (m<=n)
那,我们总的分配情况为C(m+n,m) ,然后不能的情况为C(m+n,n+1)(m+1>n)
最后加上分配排列就是(C(m+n,m)-C(m+n,n+1))*m!*n!
化解之后为: (m+1-n)*(m+n)!/(m+1);