本文引用于清华大学出版社卢开澄、卢华明《组合数学第五版》。

今天我们稍微讨论下圆排列以及$n$对夫妻的问题。

1.4圆周排列

这个问题是:从$n$个人中取$r$个在圆周上,我们用$Q(n,r)$表示这个答案。

类比简单的直线排列,不同之处在于首尾的处理,圆周情况可能会有很多重复。

不难理解,$Q(n,r)$=$P(n,r)$/$n$。

例1:5个男生,3个女生围一圆桌坐,按照上面的公式,代入我们可以得出式子:$8!$/8=$7!$。

   要求男生$B1$不和女生$G1$x相邻坐?考虑把$G1$排除,7个人围一圆桌,那么有$6!$种方案,$G1$插入有5种方法,所以根据乘法原理,总方案数为$5*6!$。

   要求3个女生不相邻?参考上一问的解题方法,排除他们仨,有$4!$种方案,3个女生依次插入,根据乘法原理,总方案数为$4!*5*4*3$。

例2:$n$对夫妻围一圆桌坐,求每队夫妻相邻而坐的方案数。

     考虑把夫妻二人进行捆绑,看成一个人,那么有$(n-1)!$种方案,因为夫妻左右坐是不定的,所以总方案数为$2^n*(n-1)!$。

例3:有12个人分两桌,每桌6人,围着圆桌而坐,有多少方案?  根据上面的式子,显然有$C(12,6)*(5!)^2$。

    12对夫妻平分为2桌,围圆桌而坐相邻有多少方案?   显然有$C(12,6)*(5!*2^6)^2$。

3.10 $n$对夫妻问题

我们要解决的,是$n$对夫妻围圆桌而坐,求夫妻不相邻的方案数。

这个问题运用了很综合的数论问题,需要用到容斥原理。

我们不妨把这个问题抽象成集合间的问题,令$A_i$表示第i对人坐在一起的集合

$ans=|\overline{A_1}\cap \overline{A_2}\cap \overline{A_3}\cap ...\overline{A_n}|$

(上面那个横线是取反的意思,就是$A_i$表示第i对人坐在一起的集合,那么带个横线就是表示第$i$对人不坐在一起。)

这就是一个容斥原理了。

以下我引用Chemist的题解==

再回顾一下$A_i$的含义,$A_i$表示第i对人坐在一起的集合,那么考虑只有一对人坐在一起有多少种情况呢,可以把这一对人看成一个人,反正他们总要坐在一起,问题就变成了$2n-1$个人围坐在圆桌上,共有$(2n-1-1)!$种情况,注意还要乘上一个2,因为这一对人可以换位,还要再乘上一个C(n,1),因为不同的一对人坐在一起的方案是不同的。其他的同理,这样我们就可以算出后面每个式子的具体值。

$ans=N-\sum_{i=1}^{n}|A_i|+\sum_{i=1}^{n}\sum_{j=i+1}^{n}|A_i\cap A_j|...+(-1)^n|A_1\cap A_2\cap A_3...\cap A_n|$

$=(2n-1)!-2C(n,1)(2n-2)!+2^2C(n,2)(2n-3)!...$

$=\sum_{i=0}^{n}(-1)^i2^iC(n,i)(2n-i-1)!$

ex:有男女各5人,其中3对是夫妻,沿10个位置的圆桌就座,若每对夫妻都要坐在相邻的位置,问有多少种坐法?

把夫妻继续捆绑,变成了7人,那么方案数就是$6!*2^3$

组合数学1.4&3.10 By cellur925的更多相关文章

  1. 八皇后问题---详解---参考<<紫书>>

    在一个8*8的棋盘上  放置八个皇后 , 使得他们互相不攻击(皇后攻击范围为 同行同列同对角线) , 方法一 : 从64个格子中 选一个子集 , 使得 " 子集 中恰好有八个元素 , 且任意 ...

  2. 2018.10.31 NOIP模拟 几串字符(数位dp+组合数学)

    传送门 如果观察到性质其实也不是很难想. 然而考试的时候慌得一批只有心思写暴力233. 下面是几个很有用的性质: c0,1+1≥c1,0≥c0,1c_{0,1 }+1 ≥ c_{1,0} ≥ c_{0 ...

  3. 2018.10.30 uoj#273. 【清华集训2016】你的生命已如风中残烛(组合数学)

    传送门 组合数学妙题. 我们把这mmm个数都减去111. 然后出牌的地方就变成了−1-1−1. 然后发现求出每个位置的前缀和之后全部都是非负数. 考虑在最后加入一个−1-1−1构成一个m+1m+1m+ ...

  4. 2018.10.25 bzoj4517: [Sdoi2016]排列计数(组合数学)

    传送门 组合数学简单题. Ans=(nm)∗1Ans=\binom {n} {m}*1Ans=(mn​)∗1~(n−m)(n-m)(n−m)的错排数. 前面的直接线性筛逆元求. 后面的错排数递推式本蒟 ...

  5. 2018.10.23 NOIP训练 Leo的组合数问题(组合数学+莫队)

    传送门 好题. 考察了莫队和组合数学两个知识板块. 首先需要推出单次已知n,mn,mn,m的答案的式子. 我们令f[i]f[i]f[i]表示当前最大值为第iii个数的方案数. 显然iii之后的数都是单 ...

  6. 2018.10.04 NOIP模拟 排队(组合数学)

    传送门 T2原题啊. 直接组合数学求出合法方案数,再除去一个(n+m)!(n+m)!(n+m)!: ans=0(n<m)ans=0(n<m)ans=0(n<m) ans=n+1−mn ...

  7. 2018.10.30 NOIP模拟 排列树(树形dp+组合数学)

    传送门 考试的时候乱搞过了. 其实题目就是让你求拓扑排序方案数. 直接树形dpdpdp然后组合数转移一下就行了. 乱搞代码

  8. 2018.10.25 bzo1227: [SDOI2009]虔诚的墓主人(组合数学+扫描线+bit)

    传送门 有点难调啊.其实是我自己sb了 不过交上去1A1A1A还是平衡了一下心态. 所以这道题怎么做呢? 我们考虑对于一个点(x,y)(x,y)(x,y)如果这个点成为中心,正左/右/上/下分别有l/ ...

  9. 2018.10.25 atcoder Leftmost Ball(计数dp+组合数学)

    传送门 dp妙题啊. 我认为DZYODZYODZYO已经说的很好了. 强制规定球的排序方式. 然后就变成了一个求拓扑序数量的问题. 代码: #include<bits/stdc++.h> ...

随机推荐

  1. 【转载】C#调用国家气象局天气预报接口

    一.需求 最近,刚好项目中有天气预报查询功能的需求,要求录入城市名称,获取该城市今日天气信息及相关气象生活辅助信息等. 例如:查询北京市天气 结果为: 今日北京天气:15℃~5℃ 阵雨转阴,北风3-4 ...

  2. freeIPMI README && issue about OpenIPMI kernel driver

    http://www.gnu.org/software/freeipmi/README FreeIPMI - Copyright (C) 2003-2013 FreeIPMI Core Team Fr ...

  3. HDU 1060 Leftmost Digit (数学/大数)

    Leftmost Digit Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)To ...

  4. python基础小练习

    def main(): number = int(input("请输入学生的总人数:")) # 输入要录入的学生总数 count = number # 用一个变量来保存这个学生总数 ...

  5. Robotium结果的收集和失败重跑

    引用自 http://www.robotium.cn/archives/author/zered 测试用例: testsuite管理测试用例 测试结果的输出与收集? InstrumentationTe ...

  6. 深入浅出 - Android系统移植与平台开发(九)- Android系统system_server及Home启动

    3.3 Zygote守护进程与system_server进程 Android的执行环境和Java执行环境有着本质的差别,在Android系统中每一个应用程序都是一独立的进程,当一个进程死掉时,不会影响 ...

  7. Unity自己主动打包工具

    最開始有写打包工具的想法,是由于看到<啪啪三国>王伟峰分享的一张图,他们有一个专门的"工具程序猿"开发各种工具. (ps:说起来这个王伟峰和他的创始团队成员,曾经跟我是 ...

  8. 【POJ 1159】Palindrome

    [POJ 1159]Palindrome 近期各种题各种奇葩思路已经司空见惯了...又新出个滚动数组= = 该题另一点须要知道 最少须要补充的字母数 = 原序列S的长度 - S和S'的最长公共子串长度 ...

  9. Web Assembly背景

    Javascript ,也叫Ecma script,  是这家伙用了 10 天时间赶出来的.. 所以,各位程序猿们,如果你觉得老板 10 天要你们上线一个 App 是一个丧心病狂的事情,那么可以多想想 ...

  10. java 读写Oracle Blob字段

    许久没有分享代码了,把这段时间写的一个Java操作Blob字段,有日子没写Java了,就当作笔记记录一下.1. [代码][Java]代码     跳至 [1] [全屏预览]package com.wa ...