题目链接

BZOJ2729

题解

高考数学题。。。

我们先把老师看做男生,女生插空站
如果两个老师相邻,我们把他们看做一个男生,女生插空站
对于\(n\)个男生\(m\)个女生的方案数:
\[n!m!{n + 1 \choose m}\]

还要特判一下没有男生女生的情况

然后高精即可

#include<algorithm>
#include<iostream>
#include<cstring>
#include<cstdio>
#include<cmath>
#include<map>
#define Redge(u) for (int k = h[u],to; k; k = ed[k].nxt)
#define REP(i,n) for (int i = 1; i <= (n); i++)
#define mp(a,b) make_pair<int,int>(a,b)
#define cls(s) memset(s,0,sizeof(s))
#define cp pair<int,int>
#define LL long long int
using namespace std;
const int maxn = 100005,B = 10000,maxm = 100005,INF = 1000000000;
inline int read(){int out = 0,flag = 1; char c = getchar();while (c < 48 || c > 57){if (c == '-') flag = -1; c = getchar();}while (c >= 48 && c <= 57){out = (out << 3) + (out << 1) + c - 48; c = getchar();}return out * flag;
}
struct NUM{int s[4000],len;NUM(){cls(s); len = 0;}void out(){printf("%d",s[len]);for (int i = len - 1; i; i--)printf("%04d",s[i]);}
}A,C;
inline NUM operator *(const NUM& a,const int& b){NUM c;c.len = a.len;LL carry = 0,tmp;for (int i = 1; i <= a.len; i++){tmp = a.s[i] * b + carry;c.s[i] = tmp % B;carry = tmp / B;}while (carry) c.s[++c.len] = carry % B,carry /= B;return c;
}
inline NUM operator -(const NUM& a,const NUM& b){NUM c;c.len = a.len;int carry = 0,tmp;for (int i = 1; i <= a.len; i++){tmp = a.s[i] - b.s[i] + carry;if (tmp < 0) tmp += B,carry = -1;else carry = 0;c.s[i] = tmp;}while (c.len && !c.s[c.len]) c.len--;return c;
}
int main(){int n = read(),m = read();if (n + 3 < m || (!n && !m)){puts("0"); return 0;}n += 2;A.s[A.len = 1] = 1;for (int i = n; i > n - m + 1; i--)A = A * i;for (int i = n + 1; i; i--)A = A * i;n--;if (n + 1 >= m){C.s[C.len = 1] = 1;for (int i = n; i > n - m + 1; i--)C = C * i;for (int i = n + 1; i; i--)C = C * i;C = C * 2;}A = A - C;A.out();return 0;
}

转载于:https://www.cnblogs.com/Mychael/p/9072096.html

BZOJ2729 [HNOI2012]排队 【高精 + 组合数学】相关推荐

  1. [bzoj2729][HNOI2012]排队 题解 (排列组合 高精)

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

  2. bzoj2729: [HNOI2012]排队

    高精度+排列组合. 如果计算老师能挨在一起的情况 有 (n+2)! * A(n+3,m) 老师一定挨宰一起的情况 有 2*(n+1)!*A(n+2,m). 相减就是答案. #include<cs ...

  3. poj1737 Connected Graph(计数,组合数学,递推,高精)

    求n个点的连通图的个数f[n],带标号.有两种做法. 1.直接搞出f[n]的递推式. f[n]=∑k=1n−1f[k]∗f[n−k]∗Ck−1n−2∗(2k−1)f[n]=\sum\limits_{k ...

  4. java第二类斯特林数编程代码,Luogu1655 小朋友的球 (组合数学,第二类斯特林数,高精)...

    我bingoyes再高精用STL就饿死,死外边! string真的爽... 斯特林数模板题:\(S(n,m) = S(n-1,m-1)+S(n-1,m)*n\) #include #include # ...

  5. [HNOI2012]排队

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

  6. P3223 [HNOI2012]排队(高中排列组合)

    传送门 题意 nnn个男生,mmm个女生,222个老师排队 女生和女生不能相邻,老师和老师不能相邻,问方案数. 考虑到老师只有两个,所以可以对老师来讨论. Ⅰ.\color{Red}Ⅰ.Ⅰ.两只老师间 ...

  7. 高精地图与自动驾驶(下)

    高精地图与自动驾驶(下) 二.高精地图与自动驾驶 谈到高精地图对自动驾驶的作用,可以对比自动驾驶和人类驾驶的流程的相通性. 人驾驶的时候以眼睛为主,耳朵辅助观察测量环境:自动驾驶车用多种传感器包括摄像 ...

  8. 高精地图与自动驾驶(上)

    高精地图与自动驾驶(上) 前言 自动驾驶的实现主要有三个步骤:感知.决策规划.行车控制.这与你走路上班/上学的逻辑是相似的:眼睛看到画面,告诉大脑,然后你就知道了自己在哪里,以及要往哪个方向走,并指挥 ...

  9. 高精地图中导航标识识别

    高精地图中导航标识识别 思路 主要介绍高精地图导航标识识别上的技术演进,这些技术手段在不同时期服务了高精地图产线需求. 高精地图介绍 当你开车导航的时候,导航地图会向我们推荐一条或几条路线,有些地图甚 ...

最新文章

  1. 网络游戏性能测试的几点想法
  2. CentOS 7.8下安装PyRosetta4
  3. Kali linux 2016.2(Rolling)里Metasploit的OpenVAS
  4. Weblogic配置故障转移
  5. Have a tea -(极客大挑战(SMC,fork
  6. morlet小波matlab代码,morlet小波matlab程序
  7. 个人常用word技巧----平时编辑word能快不少~
  8. 看日本雅-miyavi演唱会
  9. Nginx学习总结(9)——前端跨域问题解决
  10. 同步、异步、阻塞、非阻塞IO
  11. 第十二届蓝桥杯大赛软件赛决赛题解
  12. PRICAI 2016 论文精选 | 基于车辆优先级优化交通系统的道路分布
  13. 通过手机号码编码传送信息的想法
  14. Nginx PageSpeed模块配置和使用
  15. python面向对象实例王者荣耀_python王者荣耀
  16. 当前版本与卡刷包android_小米5s卡刷包android版本不一致怎么解决
  17. 【STM32F407开发板用户手册】第2章 STM32F407的开发环境搭建
  18. HDU4585 Shaolin
  19. Rust中iter()和into_iter()的区别
  20. React(10)-组件通信(important)

热门文章

  1. pyecharts怎么绘制散点图_pyecharts可视化和wx的结合
  2. python变量类型有几种_python十种变量类型
  3. 《常用控制电路》学习笔记——数控锁相环调速电路
  4. LeetCode算法入门- 3Sum Closest -day10
  5. Java核心篇之JVM--day3
  6. 英特尔nuc能代替主机吗_python编程,热度为什么越来越高,python能代替JAVA吗?...
  7. vivo android p 机型,vivo X21成全球首批Android P适配机型!vivo :不小心就秀实力了
  8. yii2 html 跳转,阐述在Yii2上实现跳转提示页
  9. python 如何匹配列表中某个单词_Python中部分指定单词的最佳匹配项
  10. java 异常捕获抛出_JAVA异常处理捕获与抛出原理解析