【BZOJ 2729】 [HNOI2012]排队
2015-03-17 17:40
204 查看
2729: [HNOI2012]排队
Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 1033 Solved: 474
[Submit][Status][Discuss]
Description
某中学有 n 名男同学,m 名女同学和两名老师要排队参加体检。他们排成一条直线,并且任意两名女同学不能相邻,两名老师也不能相邻,那么一共有多少种排法呢?(注意:任意两个人都是不同的)Input
只有一行且为用空格隔开的两个非负整数 n 和 m,其含义如上所述。对于 30%的数据 n≤100,m≤100
对于 100%的数据 n≤2000,m≤2000
Output
输出文件 output.txt 仅包含一个非负整数,表示不同的排法个数。注意答案可能很大。Sample Input
1 1Sample Output
12HINT
Source
day1排列组合+高精度/python
先把男生排好,有n!种;
然后放入老师,分两种情况:
1.老师放在不同空中:
A(n+1,2)
然后就会产生n+3个空,女生就有A(n+3,m)种
答案就是n!*A(n+1,2)*A(n+3,m)
2.老师放在同一空中:
A(n+1,1)*2
老师中间必须有一个女生,还有n+2个空可放,m*A(n+2,m-1)
答案是n!*A(n+1,1)*2*m*A(n+2,m-1)
def Fac(n): ans=1 for i in range(2,n+1): ans*=i return ans def A(n,m): if n<m: return 0 return Fac(n)//Fac(n-m) n,m=raw_input().split() n=int(n) m=int(m) print(Fac(n)*(2*A(n+1,1)*m*A(n+2,m-1)+A(n+1,2)*A(n+3,m)))
python学习网站
相关文章推荐
- 【BZOJ】【2729】【HNOI2012】排队
- 【BZOJ2729】[HNOI2012]排队 组合数
- [BZOJ2729][HNOI2012]排队(组合数学+高精度)
- 排队 [HNOI 2012,Codevs 1994,Bzoj 2729]
- 【bzoj2729】[HNOI2012]排队
- [BZOJ2729] [HNOI2012]排队
- 【BZOJ2729】【HNOI2012】排队(组合数学)
- 【BZOJ】2729: [HNOI2012]排队
- [BZOJ 2729][HNOI2012]排队:高精度+组合数
- BZOJ2729 [HNOI2012]排队
- BZOJ2729 [HNOI2012]排队
- bzoj2729: [HNOI2012]排队
- BZOJ 2729: [HNOI2012]排队|排列组合
- 2729:[HNOI2012]排队 - BZOJ
- 【HNOI2012】【BZOJ2729】排队
- 【BZOJ】2729: [HNOI2012]排队
- 【BZOJ2729】[HNOI2012]排队【组合数学】
- bzoj2729 [HNOI2012]排队
- 【bzoj2729】[HNOI2012]排队 组合数学+高精度
- 组合数学+高精度 BZOJ2729 [HNOI2012]排队