排队 题解 组合数学+高精度

因为实在是写不动了,所以菜鸡颓博客为了信奥发展的伟大未来作出一点小小的贡献

题目描述

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

输入格式

只有一行且为用空格隔开的两个非负整数 n 和 m,其含义如上所述。
对于 30%的数据 n≤100,m≤100
对于 100%的数据 n≤2000,m≤2000

输出格式

输出文件 output.txt 仅包含一个非负整数,表示不同的排法个数。注意答案可能很大。

样例输入

1 1

样例输出

   12

题解:
这是一道组合数学,应该说是非常明显。
首先我们需要一个数奥生思路开始要正确。
我们选择固定男生和老师,然后将女生插空,貌似如果固定女生的式子会非常麻烦。我写到一半果断放弃了
固定男生时是A(n,n);
固定老师时分两种情况:
老师卡在一起,也就是老师一起站在两个男生中间,是A(2,2),这时需要一个女生站在老师中间,总式子变成A(n,n)*(n+1)*A(2,2)*A(n+2,m-1),m-1在上面。
或者老师没有卡在一起,是A(n+1,2),然后女生插空,总式子变成A(n,n)*A(n+1,2)*A(n+3,m).
合并式子,最终是n!*(2*m+n*(n+3))*(n+1)*(n+2)!/(n-m+3)!。
 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstring>
 4 #define maxn 100010
 5 using namespace std;
 6 int n,m,a[maxn],b[maxn],c[maxn];
 7 void mult(int a[],int b)
 8 {
 9     int x=0;
10     for(int i=1;i<=a[0];i++)
11     {
12         int tmp=a[i]*b+x;
13         a[i]=tmp%10;
14         x=tmp/10;
15     }
16     while(x)
17     {
18         a[++a[0]]=x%10;
19         x/=10;
20     }
21 }
22 
23 int main()
24 {
25     scanf("%d%d",&n,&m);a[0]=a[1]=1;
26     for(int i=1;i<=n;i++) mult(a,i);
27     mult(a,(2*m+n*(n+3)));
28     mult(a,n+1);
29     for(int i=n-m+4;i<=n+2;i++) mult(a,i);
30     for(int i=a[0];i>0;i--) printf("%d",a[i]);
31     return 0;
32 }
代码
大概就是这样。
 

转载于:https://www.cnblogs.com/MouDing/p/11121426.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/462215.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在window下搭建TensorFlow

网站&#xff1a;https://blog.csdn.net/chduguxue/article/details/793922201.首先查看TensorFlow目前对Windows支持的python版本要求 https://pypi.python.org/pypi/tensorflow/1.1.0rc2截止本文2018年2月27日&#xff0c;要求python是3.5&#xff0c;操作系统64位 如果pytho…

广播、组播、点播的区别

原网站:https://blog.csdn.net/z502521809/article/details/53007932 今天学习的时候发现了广播、组播、点播这三个用来描述网络节点之间通讯方式的术语&#xff0c;那么这几种“播”到底有什么区别&#xff1f;于是乎百度总结了一下。 ----------------------------------点播…

Arm架构下VUE环境的安装

最近因为项目需要在arm环境下搭建vue环境&#xff0c;网上有基于Linux的 教程&#xff0c;路径略有不同&#xff0c;现整理如下 1、安装文件下载 1、下载地址&#xff1a;http://nodejs.cn/download/ 2、选择一个合适的版本下载 2、安装步骤 1、将安装包上传到指定位置(我习惯放…

网络安全技术之端口隔离

端口隔离技术是一种实现在客户端的端口间的足够的隔离度以保证一个客户端不会收到另外一个客户端的流量的技术。通过端口隔离技术&#xff0c;用户可以将需要进行控制的端口加入到一个隔离组中&#xff0c;实现隔离组中的端口之间二层、三层数据的隔离&#xff0c;既增强了网络…

python解释器、pycharm安装及环境变量配置

python解释器、pycharm安装及环境变量配置 1.python解释器安装 下载地址&#xff1a;https://www.python.org/ 打开官网&#xff0c;点击downloads,选择操作系统&#xff0c;以windows为例&#xff1a; 选择python2与python3解释器版本&#xff08;以python3.6.6及python2.7.16…

RHEL6.4 Keepalive+LVS(DR)部署文档

1、简介LVSKeepalived 能实现的功能:利用 LVS 控制器主备模式避免单点故障以及自动删除故障 WEB 服务器结点并当它恢复后再自动添加到群集中。拓扑图:2、系统环境系统平台:RHEL6.4硬件平台:dell R720*4硬件参数:cpu(e5-2609)两颗;内存 32G;磁盘 600G*6;RAID 5 ;双电源LVS 版本:…

非阻塞I/O多路复用机制

题外话&#xff1a;我们现在要仔细的说一说I/O多路复用机制&#xff0c;因为这个说法实在是太通俗了&#xff0c;通俗到一般人都不懂是什么意思。博主打一个比方&#xff1a;小曲在S城开了一家快递店&#xff0c;负责同城快送服务。小曲因为资金限制&#xff0c;雇佣了一批快递…

Windows平台WebRTC编译-VS2017

转载网站&#xff1a;https://blog.jianchihu.net/webrtc-build-vs2017.html 在音视频领域&#xff0c;想深入研究的话&#xff0c;必定会接触WebRTC。WebRTC是一个庞大的工程&#xff0c;就像是音视频领域的百科全书&#xff0c;音视频采集&#xff0c;编解码&#xff0c;传输…

Hadoop--初识Hadoop

什么是Hadoop&#xff1f; 搞什么东西之前&#xff0c;第一步是要知道What&#xff08;是什么&#xff09;&#xff0c;然后是Why&#xff08;为什么&#xff09;&#xff0c;最后才是How&#xff08;怎么做&#xff09;。但很多开发的朋友在做了多年项目以后&#xff0c;都习惯…

VS2019编译 当前最新版chromium

VS2019编译 当前最新版chromium 之前编译过webrtc和chromium&#xff0c; 由于长时间没用&#xff0c;被我删除了&#xff0c; 最近在最新版本的google浏览器上遇到了播放器兼容性问题&#xff0c;老版本的google浏览器是没问题&#xff0c;IE, 火狐浏览器也没问题&#xff0…

37signals为何砍掉中层?个人点评,高素质人才队伍工作,靠的是全体发挥综合能力,而不是靠......

为什么80%的码农都做不了架构师&#xff1f;>>> 37signals为何砍掉中层? 分享到 本文来源于&#xff1a;中欧商业评论 作者&#xff1a;潘芸 发表于&#xff1a;2013-08-21 11:09:41 http://www.cyzone.cn/a/20130821/244571.html 37signals有多位程序员&#…

ExtAspNet学习-利用AppBox框架快速创建项目(五)—完成项目含源代码

我们前边四个部分已经完成了框架需要的基础配置&#xff0c; 现在我们来完成项目 1、Subsonic 配置&#xff0c;首先在OraSurvey.DAO中添加App.config配置相关信息 View Code 1 <?xml version"1.0" encoding"utf-8" ?> 2 <configuration> 3…

linux+apache+mysql+php

linuxapachemysqlphp设置mysqll测试1网站注意&#xff1a;在安装或者测试的时候出现乱码的话&#xff0c;可以修改浏览器的编码一项将其改为适合的编码输入站点http://服务器地址/ecshop url会自动跳转到服务器地址/ecshop/install/index.php安装过程中会提示目录文件不可写&am…

android4.0.3 修改启动动画和开机声音

1. Linux 系统启动&#xff0c;出现Linux小企鹅画面(reboot)(Android 1.5及以上版本已经取消加载图片)&#xff1b;2. Android平台启动初始化&#xff0c;出现"A N D R I O D"文字字样画面&#xff1b;3. Android平台图形系统启动&#xff0c;出现含闪动的ANDROID字样…

VMWare虚拟机NAT模式静态IP联网配置

使用静态IP&#xff0c;而不选用DHCP的主要原因是避免每次重启计算机后&#xff0c;虚拟机系统的IP发生变化&#xff0c;导致常常需要修改宿主机器远程连接虚拟机服务(例如Mysql) 环境 项目版本号VmwareVmware Workstation Pro 15UbuntuUbuntu 18.04.2 LTS关键配置 虚拟网络编辑…

ffmpeg调整缩放裁剪视频的基础知识(转)

源网址&#xff1a;ffmpeg调整缩放裁剪视频的基础知识 - yongfengnice - 博客园 1. resize and scale video 调整视频的大小和尺寸 1-1.调整视频大小(resize)是改变视频的宽度和高度。 使用-s参数实现&#xff0c;语法&#xff1a;ffmpeg -i input_file -s wxh output_fi…

Babel+vscode实现APICloud开发中兼容ES6及以上代码

本文出自APICloud官方论坛&#xff0c; 感谢论坛版主 penghuoyan 的分享。 使用APICloud开发时&#xff0c;考虑到兼容问题一直使用ES5开发&#xff0c;时间越久感觉越落后&#xff0c;整理了一个兼容ES6的开发环境&#xff0c;供大家参考。 步骤1&#xff1a; 安装Node开发环境…

如何在工作组环境win 7远程管理Hyper-v server R2 SP1配置(三)

在 如何在工作组环境win 7远程管理Hyper-v server R2 SP1配置&#xff08;二&#xff09; 文中末尾&#xff0c;出现下图报错&#xff1a; 一般情况下&#xff0c;按上篇提到的hvremote.wsf 脚本配置说明文件HVRemote Documentation操作后&#xff0c;不会出现此报错&#xff0…

Liferay中使用portlet:resourceURL触发serveResource()方法调用的细节

引入&#xff1a;大家在Portlet 开发中经常用到<portlet:resourceURL>&#xff0c;而大体上都会去调用相应的serveResource()方法&#xff0c;这个过程虽然大家都清楚&#xff0c;但是能弄明白这个过程细节的&#xff0c;我相信全世界不超过100人&#xff0c;至少我去年就…

使用ESP定律_手工脱壳

ESP定律脱壳一般的加壳软件在执行时&#xff0c;首先要初始化&#xff0c;保存环境&#xff08;保存各个寄存器的值&#xff09;&#xff0c;一般利用PUSHAD&#xff08;相当于把所有寄存器都压栈&#xff09;&#xff0c;当加壳程序的外壳执行完毕以后&#xff0c;再来恢复各个…