ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

P3223 (排列组合)

2022-09-05 11:02:56  阅读:225  来源: 互联网

标签:方案 题目 老师 return ans 排列组合 math P3223


 

题目传送门

题目大意:略

题目分析:

本题类似于当小球遇上盒子

  • [\(1\)] : 我们可以假设所有老师均为男生,利用插板法,我们可知两个女生可以放入一个男生两侧,又因为每个人都是不同的,故总方案数为 \(A^m_{n + 3} * A^{n + 2}_{n +2}\)

  • [\(2\)] : 我们再去考虑在上述总方案数中有多少种方案两个老师是相邻的,那么我们可以将两个老师看做成一个整体去计算老师相邻的方案数。对于这种情况的总方案数为 \(A^2_2 * A^m_{n + 2} * A^{n + 1}_{n + 1}\)

代码实现:

由于答案过大,以及笔者太懒了,所以用的 \(python 3\) 写的

点击查看代码
import math
ans=0
n,m=map(int,input().split())
def f(x):
	return math.factorial(x)
def A(x,y):
	return f(x)//f(x-y)
if(n+3>=m):
	ans+= A(n+3,m)*A(n+2,n+2)
if(n+2>=m):
	ans-=2*A(n+2,m)*A(n+1,n+1);
print(ans)

标签:方案,题目,老师,return,ans,排列组合,math,P3223
来源: https://www.cnblogs.com/Love-yx/p/16657348.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有