<题面>

这个题十分基础

写这个博客给自己看的呵呵

遇到这个题,一看就是组合数学,

so,开始推公式,

刚开始想的是,先排男生,再排女生,最后排老师

推了一会,呃呃呃,情况复杂,考虑的好像有点多。//蒟蒻心态

然后换了一个思路,

先排男生,再排老师,最后排女生

想了下,就决定用减法。


先把老师和男生混好,然后把女生插空

这样就会有一种非法情况,老师相连,而且只有一种

这样就可以把两个老师绑成一个整体,再按上述操作进行

就会有一个式子:

$A \binom{n+2}{n+2} \times A \binom{m}{n+3} -A \binom{2}{2} \times A \binom{n+1}{n+1} \times A\binom{m}{n+2}$

还是可以懂得吧?

而且只要用高精乘低精和高精减就可以了咯

最后蒻蒻的说:我调这个题主要在高精度上,苦笑

 #include <iostream>
#include <cstring>
#include <cstdio>
#define N 50000
using namespace std;
struct Hyper_long{
int *a;
Hyper_long(int k){
a=new int[k];
for(int i=;i<k;i++)a[i]=;
}
void out(){
if(a[]==)putchar('');
for(int i=a[];i>=;i--)putchar(a[i]+'');
puts("");
}
void set_length(int len){
a[]=len;
}
int length(){
return a[];
}
};
void operator *= (Hyper_long &x,int y){
long long r=;
for(int i=;i<=x.length();i++){
x.a[i]=x.a[i]*y+r;
r=x.a[i]/;
x.a[i]%=;
}
while(r!=){
x.a[]++;
x.a[x.a[]]=r;
r=x.a[x.a[]]/;
x.a[x.a[]]%=;
}
return ;
}
Hyper_long operator - (Hyper_long x,Hyper_long y){
Hyper_long k(N);
int len=max(x.length(),y.length());
for(int i=;i<=len;i++){
k.a[i]=x.a[i]-y.a[i];
if(k.a[i]<){
x.a[i+]--;
k.a[i]+=;
}
}
while(){
if(k.a[len]!= || len==) break;
len--;
}
k.set_length(len);
return k;
}
Hyper_long a(N),b(N),c(N);
int m,n;
int main(){
a.a[]=a.a[]=;
b.a[]=b.a[]=;
scanf("%d%d",&n,&m);
for(int i=;i<=n+;i++){//先把男生和老师混在一起
a*=i;
}
for(int i=n+;i>=n+-m+;i--){//把女生插进去
a*=i;
}
b*=;//把两个老师绑在一起
for(int i=;i<=n+;i++){//和男生混好
b*=i;
}
for(int i=n+;i>=n+-m+;i--){//把女生插进去
b*=i;
}
c=a-b;
c.out();//输出
}

Total Code

补:如果可以进行式子的处理然后合并同类项:

$A \binom{n+1}{n+1} \times A \binom{m-1}{n+3} \times (n-m+4)-2 \times A \binom{n+1}{n+1} \times A \binom{m-1}{n+3} \times (n+2)\\ = A \binom{n+1}{n+1} \times A \binom{m-1}{n+3} \times (n+2) \times (n-m+2) $

就可以实现只用高精乘低精就可以解决的问题了,提出的减法项只用int就可以呢

组合数学起步-排队[HNOI2012][BZOJ2729]的更多相关文章

  1. 组合数学起步-排列计数[ZJOI2010][BZOJ2111]

    <题面> 数据范围:$1 \leq N \leq 10^6, P \leq 10^9 $ 这个题…… 以为是排列,其实是组合 题目中说是从所有排列中找到Magic的,就是 $p_{i/2} ...

  2. 【bzoj2729】[HNOI2012]排队 组合数学+高精度

    题目描述 某中学有 n 名男同学,m 名女同学和两名老师要排队参加体检.他们排成一条直线,并且任意两名女同学不能相邻,两名老师也不能相邻,那么一共有多少种排法呢?(注意:任意两个人都是不同的) 输入 ...

  3. [BZOJ2729]:[HNOI2012]排队(组合数学)

    题目传送门 题目描述 某中学有n名男同学,m名女同学和两名老师要排队参加体检.他们排成一条直线,并且任意两名女同学不能相邻,两名老师也不能相邻,那么一共有多少种排法呢?(注意:任意两个人都是不同的) ...

  4. BZOJ2729:[HNOI2012]排队(组合数学)

    Description 某中学有 n 名男同学,m 名女同学和两名老师要排队参加体检.他们排成一条直线,并且任意两名女同学不能相邻,两名老师也不能相邻,那么一共有多少种排法呢?(注意:任意两个人都是不 ...

  5. BZOJ2729 [HNOI2012]排队 【高精 + 组合数学】

    题目链接 BZOJ2729 题解 高考数学题... 我们先把老师看做男生,女生插空站 如果两个老师相邻,我们把他们看做一个男生,女生插空站 对于\(n\)个男生\(m\)个女生的方案数: \[n!m! ...

  6. 【BZOJ2729】【HNOI2012】排队(组合数学)

    不想弄题面了... 题解 做这道题目我真的好蠢... 好容易的数学题目 很明显自己写高精度吧...(不解释了) 剩下的如何计算. 要有两类情况 ①老师之间有男生 那么,这种情况下,直接插空就行了 先把 ...

  7. BZOJ2729 HNOI2012排队(组合数学+高精度)

    组合入门题.高精度入门题. #include<iostream> #include<cstdio> #include<cstdlib> #include<cs ...

  8. 【BZOJ2729】[HNOI2012]排队 组合数

    [BZOJ2729][HNOI2012]排队 Description 某中学有 n 名男同学,m 名女同学和两名老师要排队参加体检.他们排成一条直线,并且任意两名女同学不能相邻,两名老师也不能相邻,那 ...

  9. bzoj2729 [HNOI2012]排队

    组合数学,推一下式子,并不难推. java代码 import java.io.*; import java.math.BigInteger; import java.util.*; public cl ...

随机推荐

  1. 【分块】P4135 作诗

    分块太暴力惹... 没做出来.看了题解qaq 分析: 两头$\sqrt{n}$暴力维护 预处理ans[i][j],sum[i][j] sum[i][j]是一个前缀和,前i块值为j的数量 ans[i][ ...

  2. DMZ在虚拟化环境中的部署

    常见的方法有三种: 1.分别部署 2.部分虚拟化 3.全部虚拟化 传统DMZ部署结构: 分别部署: 想要保持DMZ区域物理隔离采用这种方法,每个区域分别部署进入不同的服务器集群,区域之间的连接采用物理 ...

  3. signed main()

    主函数由int main()改成signed main() 好处:把int改成long long 的时候不用单独把它改成int了,懂的人都懂(滑稽

  4. 连通图,set——cf1037E

    看了题解又调了很久,用set来维护当前满足条件的pair<degree[v],v> 离线操作,先建好一张图,然后建立好集合,每次删边后都把集合里不满足条件的点删去,同时更新集合 /* 离线 ...

  5. 7 Serialize and Deserialize Binary Tree 序列化及反序列化二叉树

    原题网址:http://www.lintcode.com/zh-cn/problem/serialize-and-deserialize-binary-tree/# 设计一个算法,并编写代码来序列化和 ...

  6. SpringBoot学习笔记(二):SpringBoot访问静态文件、捕获全局异常、集成Thymeleaf、集成JSP

    SpringBoot访问静态文件 什么是静态文件? 不需要通过web容器去得到的文件,直接通过路径就能得到的文件,比如项目的css,js,img等文件. 所有的资源文件都应该在src/main/res ...

  7. c# 删除空文件夹

    https://www.cnblogs.com/vikimono/p/11066778.html

  8. mysql内建命令快速手记 — 让手指跟上思考的速度(一)

    在微信公众号上看到一篇文章说的很好,意思是说,大牛在尝试各种方案的时候可能并没有超神的预测和筛选能力 只是你通常测试一种情况时,大神已经测试了好几种方案了,讲的是"为什么大多数程序员不喜欢写 ...

  9. https://blog.csdn.net/qq_33169863/article/details/82977791

    https://blog.csdn.net/qq_33169863/article/details/82977791 ** 查看设备连接  adb devices ** 列出手机已安装的包名 adb ...

  10. jdom xpath定位带xmlns命名空间的节点(转)

    jdom xpath定位带xmlns命名空间的节点 2013-06-29      0个评论       作者:baozhengw 收藏    我要投稿 关键词:jdom xpath xmlns 命名 ...