困扰多年的问题,居然在学习离散数学后的一分钟内得到解决。
形式化问题为,求满足 A ⊆ B ⊆ S A \sube B \sube S A⊆B⊆S 的有序对 < A , B > <A,B> <A,B> 的个数。

法1

类比子集数量的求法。每个元素有四种可能

  • 同时在 A A A, B B B
  • 在 A A A 不在 B B B
  • 在 B B B 不在 A A A
  • 都不在

其中由题,在 A A A 不在 B B B 不符合题意,所以每个元素有三种可能,最后是 3 n 3^n 3n

法2

按照 A A A 中的元素个数 k k k 分类,对于一个固定的 k k k,有序对有 C ( n , k ) ⋅ 2 n − k C(n,k) \cdot 2^{n-k} C(n,k)⋅2n−k 个,其中 C ( n , k ) C(n,k) C(n,k) 表示先选出某个 A A A, 2 n − k 2^{n-k} 2n−k 表示在剩下的元素任选,使之包含 A A A。

于是 N = ∑ k = 0 n C ( n , k ) ⋅ 2 n − k = ∑ k = 0 n C ( n , k ) ⋅ 1 k ⋅ 2 n − k = ( 1 + 2 ) n = 3 n N = \sum_{k=0}^{n} C(n,k)\cdot 2^{n-k} = \sum_{k=0}^{n} C(n,k)\cdot 1^k \cdot 2^{n-k} = (1+2)^n = 3^n N=∑k=0n​C(n,k)⋅2n−k=∑k=0n​C(n,k)⋅1k⋅2n−k=(1+2)n=3n

反过来先选 B B B 也是一样的,即 C ( n , k ) ⋅ 1 n − k ⋅ 2 k C(n,k)\cdot 1^{n-k} \cdot 2^k C(n,k)⋅1n−k⋅2k

枚举子集复杂度 O(n^3) 证明相关推荐

  1. 牛客挑战赛47 D Lots of Edges(最短路+递归枚举子集)

    牛客挑战赛47 D Lots of Edges 思路:点的权值最多只有(1<<17)-1(131071) ,那我们可以枚举终点的值来算最短路,每个点能连边的值都是固定的,可以通过递归枚举子 ...

  2. 二进制枚举子集 CS Maxor 或运算,DP(SOS)

    https://blog.csdn.net/noone0/article/details/78289517 目前没有题目链接. 题意:长度为n的序列a,选出两个元素,其或运算结果的最大值为多少,并求出 ...

  3. CDOJ 1355 柱爷与三叉戟不得不说的故事(枚举子集状压dp)

    柱爷与三叉戟不得不说的故事 Time Limit: 500/500MS (Java/Others)     Memory Limit: 65535/65535KB (Java/Others) Subm ...

  4. [枚举子集]leetcode1255:得分最高的单词集合(hard)

    题目: 题解: 思路:枚举子集 代码如下: class Solution {public:int maxScoreWords(vector<string>& words, vect ...

  5. Greetings!(枚举子集+dp)

    题目网址https://nanti.jisuanke.com/t/32227 题意: 给n个信(信封有长宽和数目),问在找最多k种信封类型的时候,最少浪费多少纸 思路: 看了看题解,深以为然,这个思路 ...

  6. BZOJ 2560: 串珠子 (状压DP+枚举子集补集+容斥)

    (Noip提高组及以下),有意者请联系Lydsy2012@163.com,仅限教师及家长用户. 2560: 串珠子 Time Limit: 10 Sec Memory Limit: 128 MB Su ...

  7. 状态压缩:枚举子集(最优组队)(ybtoj)(动态规划)

    解析 很裸的状压dp 但是直接暴力的话状态2n,枚举2n 乘在一起会T诶 怎么办呢? 使用下面这个循环,就可以保证只会枚举当前状态s的子集 for(int i=(s-1)&s;i;i=(i-1 ...

  8. BZOJ1688|二进制枚举子集| 状态压缩DP

    Disease Manangement 疾病管理 Description Alas! A set of D (1 <= D <= 15) diseases (numbered 1..D) ...

  9. 二进制的应用——枚举子集

    集合是指由一个或多个确定的元素所构成的整体,也可以当作不分顺序的数组 当集合中不包含任何元素时,我们称它为空集 我们一般用大括号及期中若干元素表示一个集合,例如1,3,5{1,3,5}1,3,5表示包 ...

最新文章

  1. 使用Gson对复杂json对象的成员进行删选
  2. Android Context初探
  3. SOAP消息机制简介
  4. Windows 8 系统快捷键热键列表收集
  5. RedHat系列软件管理(第二版) --脚本安装
  6. 示范NTFS 卷上的流
  7. LABJS的使用教程
  8. Mysql原理+ 多实例 +表损坏
  9. 基于 Apache Mahout 构建社会化推荐引擎
  10. PollingBlockTracker - encountered an error while attempting to update latest block:
  11. 下列关于linux扩展名说法错误的是,全国计算机一级考试选择题集锦(2015年1月)
  12. matlab随机生成点图,matlab随机生成散点图
  13. PDF文件如何旋转页面保存
  14. 计算机上的no是代表什么意思啊,电脑出现nosignal是什么意思
  15. 用计算机软件绘制思维导图和手绘思维导图,用计算机软件绘制思维导图和手绘思维导图各有优势。()...
  16. 安装JDK+SDK+eclipse+Android Studio+模拟器(夜神OK,AVD黑屏)
  17. 【每日早报】2019/11/01
  18. 决策树和 K 近邻分类
  19. android 手势识别代码
  20. 如何把pdf转换成excel呢?教你简单的方法

热门文章

  1. 古月居 ROS 入门21讲--PA16 参数的使用与编程方法
  2. Python爬虫与信息提取(五)爬虫实例:爬取新浪微博热搜排名
  3. JAV----------数组操作
  4. 如何自己建网站,免费自助建站系统平台哪个最好?
  5. opencv的NORM_MINMAX参数
  6. Abbexa低样本量鸡溶菌酶 C (LYZ) ELISA 试剂盒
  7. Win8Metro(C#)数字图像处理--2.26图像减法
  8. vue3+ts+vant移动端H5项目搭建
  9. uni-app使用ucharts地图(主要微信小程序-初步使用)
  10. vue调用本地摄像头实现拍照