普利斯记号

以下以“人”代指受条件约束的元素。

\(K(x)\)表示刚好\(x\)人满足条件的方案数。

\(S(x)\)表示至少\(x\)人满足条件的方案数。

\(C(x)\)表示任选\(x\)人满足条件,其他人任意的方案数。

则显然有\(S(0)=C(0)=K(0)+S(1)=所有人任意的方案数\)。

注意\(S\)与\(C\)的不同处。比如大小为\(3\)的集合,条件为选择其子集,则\(S(1)=7\),但\(C(1)=12\)。

容斥原理

\[K(0)=\sum_{i=0}^n(-1)^iC(i)\]

也就是小学生的容斥。一般的组合类的容斥题都可以用这个解。

\(C(x)\)的计算一般是先乘\(C_n^x\),表示任选\(x\)人,然后乘上\(x\)人满足条件的方案数,再乘上\(n-x\)人任意选的方案数。

注意:这种容斥原理要求人是无差别的。若人与人不同,则用\(2^n\)的容斥。

解题

容斥原理可以将问题转换为其补问题。如\(C\)的计算里所讲,事实上我们要算的由“所有人不满足条件的方案数”变成了“\(x\)人满足条件的方案数”。同时,满足条件比不满足条件好算得多。于是问题就变得简单。

错排问题

求满足\(p(i)\ne i\)的长度为\(n\)的排列数。

考虑随便选,这样有人就会\(i=p(i)\)。于是我们把\(i=p(i)\)作为限制条件,要求的就是\(K(0)\)。

由容斥原理,考虑计算\(C(x)\)。显然\(C(x)=C_n^x\times 1\times(n-x)!\)。(对着上面看)

于是答案就是\(\sum_{i=0}^n(-1)^iC_n^i(n-i)!\)。

BZOJ2839 集合计数

求在有\(n\)个元素的集合中,选若干个不同子集使它们的交的大小为\(k\)的方案数。

这个条件等价于先任选\(k\)个放好,认为它们是交,于是就变成要求剩下的\(n-k\)个选子集交为空。考虑限制条件为交集,则答案为\(K(0)\)。

计算\(C(x)\)就是先任选\(x\)个元素认为是交,其它的集合随便选。于是\(C(x)=C_n^x\cdot 2^{2^{n-x}}\)。

BZOJ4710 JSOI2011 分特产

题面见OJ。

考虑乱分特产,不合题意的情况是有人没分到特产。于是设限制条件为没分到特产。答案为\(K(0)\)。

计算\(C(x)​\)就是在剩下的\(n-x​\)个人里面用隔板法。

容斥原理I的更多相关文章

  1. hdu4059 The Boss on Mars(差分+容斥原理)

    题意: 求小于n (1 ≤ n ≤ 10^8)的数中,与n互质的数的四次方和. 知识点: 差分: 一阶差分: 设  则    为一阶差分. 二阶差分: n阶差分:     且可推出    性质: 1. ...

  2. hdu2848 Visible Trees (容斥原理)

    题意: 给n*m个点(1 ≤ m, n ≤ 1e5),左下角的点为(1,1),右上角的点(n,m),一个人站在(0,0)看这些点.在一条直线上,只能看到最前面的一个点,后面的被档住看不到,求这个人能看 ...

  3. BZOJ2301: [HAOI2011]Problem b[莫比乌斯反演 容斥原理]【学习笔记】

    2301: [HAOI2011]Problem b Time Limit: 50 Sec  Memory Limit: 256 MBSubmit: 4032  Solved: 1817[Submit] ...

  4. BZOJ 2440: [中山市选2011]完全平方数 [容斥原理 莫比乌斯函数]

    2440: [中山市选2011]完全平方数 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 3028  Solved: 1460[Submit][Sta ...

  5. ACM/ICPC 之 中国剩余定理+容斥原理(HDU5768)

    二进制枚举+容斥原理+中国剩余定理 #include<iostream> #include<cstring> #include<cstdio> #include&l ...

  6. HDU5838 Mountain(状压DP + 容斥原理)

    题目 Source http://acm.hdu.edu.cn/showproblem.php?pid=5838 Description Zhu found a map which is a N∗M ...

  7. 【BZOJ-2669】局部极小值 状压DP + 容斥原理

    2669: [cqoi2012]局部极小值 Time Limit: 3 Sec  Memory Limit: 128 MBSubmit: 561  Solved: 293[Submit][Status ...

  8. HDU 2204Eddy's爱好(容斥原理)

    Eddy's爱好 Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Submit Sta ...

  9. CF451E Devu and Flowers (隔板法 容斥原理 Lucas定理 求逆元)

    Codeforces Round #258 (Div. 2) Devu and Flowers E. Devu and Flowers time limit per test 4 seconds me ...

  10. HDU 4336 容斥原理 || 状压DP

    状压DP :F(S)=Sum*F(S)+p(x1)*F(S^(1<<x1))+p(x2)*F(S^(1<<x2))...+1; F(S)表示取状态为S的牌的期望次数,Sum表示 ...

随机推荐

  1. Django电商项目---完成用户中心(订单中心+收货地址)day7

    完成用户中心(收货地址) df_user/views.py df_user/urls.py templates/df_user/user_center_site.html 界面显示 完成用户中心(全部 ...

  2. 【日常开发】使用多种工具实现 sql查询没有结果的name

    本文地址 分享提纲: 1. 事情的背景 2. 解决办法 3. 总结 1. 事情的背景 现在需要将2000条数据的name,从user表中查询出来结果,sql 这样写 SELECT * FROM use ...

  3. 从零上手Python关键代码

    来源 https://www.kesci.com/home/project/59e4331c4663f7655c499bc3

  4. 月球美容计划之最小生成树(MST)

    寒假学的两个算法,普里姆,克鲁斯卡尔最终弄明确了.能够发总结了 先说说普里姆,它的本质就是贪心.先从随意一个点開始,找到最短边,然后不断更新更新len数组,然后再选取最短边并标记经过的点,直到全部的点 ...

  5. centos7下安装docker(11容器操作总结)

    这段时间主要是学习了对容器的操作,包括:容器的状态:start,stop,restart,rename,pause,unpause,rm,attach,exec,kill,logs:还学习了对容器的资 ...

  6. day14 Python集合的补充

    python_1 = ['charon','pluto','ran','charon'] linux_1 = ['ran','xuexue','ting'] p_s = set(python_1) l ...

  7. rac添加新节点的步骤与方法2

    上一篇文章,把节点删除了.这次新增加一个节点 .新增加的节点是host03.如下: #Public IP192.168.16.45 racdb1192.168.16.46 racdb2192.168. ...

  8. python代码在linux服务器一般的开头

    #!/usr/bin/env python # -*- coding: utf- -*- 只做备份

  9. QT获取窗口大小和位置等信息

    QT窗口尺寸,窗口大小和大小改变引起的事件 QResizeEvent. 来源:http://blog.csdn.net/dbzhang800/article/details/6741344?reloa ...

  10. PAT A1144 The Missing Number (20 分)——set

    Given N integers, you are supposed to find the smallest positive integer that is NOT in the given li ...