传送门
题目大意
n 名男同学,m 名女同学和两名老师排队,并且任意两名女同学不能相邻,两名老师也不能相邻,求方案数。
题解
先放n个男生有Ann种方案,然后再放2个老师,两个老师可以先挨着(中间用女生隔开)或者直接不挨着
如果老师直接被男生隔开,方案总数为Ann⋅A2n+1⋅Amn+3
如果老师先挨着,那么中间一定被1个女生隔开,所以方案总数为A1m⋅2⋅An+1n+1⋅Am−1n+2
综上ans=Ann⋅A2n+1⋅Amn+3+A1m⋅2⋅An+1n+1⋅Am−1n+2=Ann⋅(A2n+1⋅Amn+3+A1m⋅2⋅(n+1)⋅Am−1n+2)
def A(n):
re=1
for i in range(1,n+1):
re*=i
return re
def C(n,m):
if n<m:
return 0
return A(n)//A(m)//A(n-m)
n,m=[int(i) for i in raw_input().split()]
print m*A(n+1)*2*A(m-1)*C(n+2,m-1)+(A(n+2)-A(n+1)*2)*A(m)*C(n+3,m)