P3223 [HNOI2012]排队 排列组合,python高精

Posted goto_1600

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了P3223 [HNOI2012]排队 排列组合,python高精相关的知识,希望对你有一定的参考价值。

题意:
n个男生,m个女生,2个老师,求老师不能相邻,女生不能相邻的方案数。
思路:
先把老师当作男生对待,最后减去老师相邻的方案,可以用插板法将女生插进男生堆里,由于要高精度,懒得写,搞一手py哈哈
答案就是不考虑老师-考虑老师的方案数

import math
def f(x):
	return math.factorial(x)
def C(x,y):
	if(x<y):	return 0
	return f(x)//f(y)//f(x-y)
a=input().split()
n=int(a[0])
m=int(a[1])
ans=f(n+2)*f(m)*C(n+3,m)-2*f(n+1)*C(n+2,m)*f(m)
print(ans)

以上是关于P3223 [HNOI2012]排队 排列组合,python高精的主要内容,如果未能解决你的问题,请参考以下文章

bzoj2729: [HNOI2012]排队

BZOJ2729[HNOI2012]排队 组合数

[HNOI2012]排队

[HNOI2012]排队

HNOI 2012/codevs 1994:排队

BZOJ2729: [HNOI2012]排队