bzoj2339[HNOI2011]卡农 dp+容斥】的更多相关文章

2339: [HNOI2011]卡农 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 842  Solved: 510[Submit][Status][Discuss] Description 可以把集合视作有序的,当做排列做,最后再 /m!设f[i]表示选出i个集合的合法方案 选出了(i-1)个集合后,最后一个集合是唯一确定的 总数就是A(2^n - 1,i-1)但是最后确定的集合可能使方案不合法,有两种情况1.最后确定的集合为空,这种情况的方案…
[BZOJ2339][HNOI2011]卡农 题解:虽然集合具有无序性,但是为了方便,我们先考虑有序的情况,最后将答案除以m!即可. 考虑DP.如果我们已经知道了前m-1个集合,那么第m个集合已经是确定的了.因为内层集合的n个元素可以随便出现,那么总数就是A(2^n-1,m-1).但是可能存在不合法的情况. 1.在前m-1个集合中,n个数出现的次数已经都是偶数了,那么第m个集合为空,不合法,此时方案数为f[m-1].2.第m个集合与之前某个集合相同,那么我们不考虑这两个集合,剩下的方案数为f[i…
[BZOJ2339][HNOI2011]卡农 试题描述 输入 见"试题描述" 输出 见"试题描述" 输入示例 见"试题描述" 输出示例 见"试题描述" 数据规模及约定 见"试题描述" 题解 先考虑 m 个 01 串排顺序的情况.可以发现如果定下前 m - 1 个 01 串,那么第 m 个串就可以由前面所有 01 串按位异或得出,所以方案数为 A(2n - 1, m - 1)(即除全 0 串外的所有情况选择…
题目链接: [HNOI2011]卡农 题目要求从$S=\{1,2,3……n\}$中选出$m$个子集满足以下三个条件: 1.不能选空集 2.不能选相同的两个子集 3.每种元素出现次数必须为偶数次 我们考虑递推,设$f[i]$为选$i$个集合满足以上条件的方案数. 考虑容斥: 当确定了前$i-1$个集合后,要满足第三个条件的话,第$i$个集合是唯一确定的,所以总方案数为$A_{2^n-1}^{i-1}$. 去掉第$i$个集合是空集的情况,如果第$i$个集合是空集,那么前$i-1$个集合一定合法,即方…
题目描述 题解 dp+容斥原理 先考虑有序数列的个数,然后除以$m!$即为集合的个数. 设$f[i]$表示选出$i$个集合作为满足条件的有序数列的方案数. 直接求$f[i]$较为困难,考虑容斥,满足条件的有序数列的方案数=总方案数-不满足条件的方案数. 考虑如果前$i-1$个集合确定,那么第$i$个集合也一定确定,总方案数为$2^n-1$个满足条件的集合(不包括空集)中取出$i-1$个的排列$A_{2^n-1}^{i-1}$. 不满足条件的方案有两种: 1.根据前$i-1$个集合确定的第$i$个…
考虑有序选择各子集,最后除以m!即可.设f[i]为选i个子集的合法方案数. 对f[i]考虑容斥,先只满足所有元素出现次数为偶数.确定前i-1个子集后第i个子集是确定的,那么方案数为A(2n-1,i-1). 显然不能为空集,于是去掉前i-1个已经满足限制的方案,也即f[i-1]. 然后去掉第i个子集和之前重复的情况.显然如果有重复,将这两个去掉后仍然是合法的.那么方案数为f[i-2]*(i-1)*(2n-1-(i-2)). #include<iostream> #include<cstdi…
[BZOJ2339]卡农(递推,容斥) 题面 BZOJ 题解 先简化一下题意: 在\([1,2^n-1]\)中选择不重复的\(m\)个数,使得他们异或和为\(0\)的方案数. 我们设\(f[i]\)表示选择\(i\)个数异或和为\(0\)的方案数. 直接算是很麻烦的,所以我们反过来,总数减去不合法的. 因为确定了前\(i-1\)个数最后一个数就已经知道了. 所以总方案数是\(A_{2^n-1}^{i-1}\),不合法的有两种,一种是选择了\(0\),一种是有重复. 选择了\(0\),意味着前\(…
题目 P3214 [HNOI2011]卡农 在被一题容斥\(dp\)完虐之后,打算做一做集合容斥这类的题了 第一次深感HNOI的毒瘤(题做得太少了!!) 做法 求\([1,n]\)组成的集合中选\(m\)个不同集合且每个元素出现偶数的组合方案 无序(打乱顺序仍记为一种)通常我们对于有序的做法更简单,怎么转换呢 C组合数的公式是怎么得来的?别说你是背来的\(emmm\)(那也没有做这题的必要了) 有序\(m!\)就得到了无序的 我们考虑\(dp\),数组\(dp_i\)表示选i个不同集合的排列方案…
LINK 题意:给出n,k,有a,b两种值,a和b间互相配对,求$a>b$的配对组数-b>a的配对组数恰好等于k的情况有多少种. 思路:粗看会想这是道容斥组合题,但关键在于如何得到每个a[i]大于b的组数. 不妨从整体去考虑,使用$f[n][j]$代表前n个中有j组$a[i]>b[i]$,很容易得到转移式$f[n][j]=f[n-1][j]+f[n-1][j-1]*(cnt[n]-(j-1))$,其中$cnt[i]$为比a[i]小的b[]个数 但是仔细思考该式子含义会发现,$f[n][j…
4665: 小w的喜糖 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 94  Solved: 53 Description 废话不多说,反正小w要发喜糖啦!! 小w一共买了n块喜糖,发给了n个人,每个喜糖有一个种类.这时,小w突发奇想,如果这n个人相互交换手中的糖,那会有多少种方案使得每个人手中的糖的种类都与原来不同. 两个方案不同当且仅当,存在一个人,他手中的糖的种类在两个方案中不一样. Input 第一行,一个整数n 接下来n行,每行一个整数…