bzoj2729
一看就知道是数学题,考虑插空法
由于老师只有两人,所以先对老师进行插空
这里考虑两种情况:
1.两个老师站在同一处,即两个男生之间站了两个老师
这时候需要一个女生站在两个老师之间,再对女生插空,根据乘法原理即2*(n+1)*m*P(m-1,n+2);
2.两个老师已经被男生隔开了
这时候即P(2,n+1)*P(m,n+3);
最后加起来还要乘以n!(即男生排列数)即可
var a,b:array[..] of longint;
i,la,lb,n,m:longint; procedure mul(y:longint);
var i,j,x,t:longint;
begin
t:=;
for i:= to la do
begin
x:=a[i]*y+t;
a[i]:=x mod ;
t:=x div ;
end;
while t> do
begin
inc(la);
a[la]:=t mod ;
t:=t div ;
end;
end; procedure add;
var i,x,t:longint;
begin
if lb>la then la:=lb;
t:=;
for i:= to la do
begin
x:=a[i]+b[i]+t;
a[i]:=x mod ;
t:=x div ;
end;
while t<> do
begin
inc(la);
a[la]:=t mod ;
t:=t div ;
end;
end; begin
readln(n,m);
la:=;
a[]:=;
for i:= to m do
mul(n+-i);
mul(n+);
mul(n);
lb:=la;
b:=a;
la:=;
fillchar(a,sizeof(a),);
a[]:=;
mul(n+);
mul(m);
for i:= to m- do
mul(n+-i);
add;
for i:= to n do
mul(i); for i:=la downto do
write(a[i]);
writeln;
end.
bzoj2729的更多相关文章
- BZOJ2729 [HNOI2012]排队 【高精 + 组合数学】
题目链接 BZOJ2729 题解 高考数学题... 我们先把老师看做男生,女生插空站 如果两个老师相邻,我们把他们看做一个男生,女生插空站 对于\(n\)个男生\(m\)个女生的方案数: \[n!m! ...
- 【BZOJ2729】[HNOI2012]排队 组合数
[BZOJ2729][HNOI2012]排队 Description 某中学有 n 名男同学,m 名女同学和两名老师要排队参加体检.他们排成一条直线,并且任意两名女同学不能相邻,两名老师也不能相邻,那 ...
- bzoj2729 [HNOI2012]排队
组合数学,推一下式子,并不难推. java代码 import java.io.*; import java.math.BigInteger; import java.util.*; public cl ...
- 【BZOJ2729】【HNOI2012】排队(组合数学)
不想弄题面了... 题解 做这道题目我真的好蠢... 好容易的数学题目 很明显自己写高精度吧...(不解释了) 剩下的如何计算. 要有两类情况 ①老师之间有男生 那么,这种情况下,直接插空就行了 先把 ...
- BZOJ2729 HNOI2012排队(组合数学+高精度)
组合入门题.高精度入门题. #include<iostream> #include<cstdio> #include<cstdlib> #include<cs ...
- BZOJ2729:[HNOI2012]排队(组合数学)
Description 某中学有 n 名男同学,m 名女同学和两名老师要排队参加体检.他们排成一条直线,并且任意两名女同学不能相邻,两名老师也不能相邻,那么一共有多少种排法呢?(注意:任意两个人都是不 ...
- 【bzoj2729】[HNOI2012]排队 组合数学+高精度
题目描述 某中学有 n 名男同学,m 名女同学和两名老师要排队参加体检.他们排成一条直线,并且任意两名女同学不能相邻,两名老师也不能相邻,那么一共有多少种排法呢?(注意:任意两个人都是不同的) 输入 ...
- [BZOJ2729]:[HNOI2012]排队(组合数学)
题目传送门 题目描述 某中学有n名男同学,m名女同学和两名老师要排队参加体检.他们排成一条直线,并且任意两名女同学不能相邻,两名老师也不能相邻,那么一共有多少种排法呢?(注意:任意两个人都是不同的) ...
- [bzoj2729][HNOI2012]排队 题解 (排列组合 高精)
Description 某中学有 n 名男同学,m 名女同学和两名老师要排队参加体检.他们排成一条直线,并且任意两名女同学不能相邻,两名老师也不能相邻,那么一共有多少种排法呢?(注意:任意两个人都是不 ...
随机推荐
- Managing Group Policy with PowerShell
Overview In this article, I’ll talk about your options when it comes to managing Group Policy using ...
- 第二篇:web之前端之css
前端之css 前端之css 本节内容 css概述及引入 css选择器 css常用属性 1.css概述及引入 CSS概述 CSS是Cascading Style Sheets的简称,中文称为层叠样式 ...
- json解析异常 - net.sf.json.JSONException: java.lang.reflect.InvocationTargetException
注:在项目中, 我使用原生的ajax请求数据的时候, JSONObject没能帮我解析, 当却不给我报错, 我是在junit单元测试中测试的时候, 发现的.发现好多时候, 特别是通过ajax请求, 不 ...
- Eclipse 经验之谈(一):快速打war包
如何快速打一个war包: 具体步骤: 单击右键[在项目名称上]——>Export -->War File . 完成war包的导出了.嘻嘻
- strace跟踪操作的详细内容
- iOS Core Animation学习总结(1)--CALayer常用属性
图层是core animation的基础, UIView之所以能显示在屏幕上,靠的是其内部的这个图层,即每个UIView 都有 CALayer,可通过UIView.layer或者[UIView lay ...
- ios专题 - GCD(1)
什么是GCD? Grand Central Dispatch或者GCD,是一套低层API,提供了一种新的方法来进行并发程序编写.从基本功能上讲,GCD有点像 NSOperationQueue,他们都允 ...
- POJ 3280 Cheapest Palindrome(DP 回文变形)
题目链接:http://poj.org/problem?id=3280 题目大意:给定一个字符串,可以删除增加,每个操作都有代价,求出将字符串转换成回文串的最小代价 Sample Input 3 4 ...
- Quartz.NET开源作业调度架构
Quartz.NET是一个开源的作业调度框架,是 OpenSymphony 的 Quartz API 的.NET移植,它用C#写成,可用于winform和asp.net应用中.它提供了巨大的灵活性而不 ...
- Python快速排序
快排,取一个key值,一般取第一个即可,将小于key的放到左边,大于key的放到右边,递归实现 import random def quicksort(data, low = 0, high = No ...