随笔分类 - 计数----容斥原理
摘要:考虑斯特林容斥 然后贝尔数复杂度枚举划分方案,然后把每张图状压成一个的二进制数 只需要计算一些二进制数有多少个子集满足异或值∈k 直接线性基一下。 直接线性基上判断能不能保证那些位置都为 能保证的话,方案数就是,为造询问的二进制数字中为,且这一位上有
阅读全文
摘要:基本容斥 记住这两个定理即可 二项式反演 首先得晓得两个很基本的式子 \[ \beg
阅读全文
摘要:https://loj.ac/problem/6072 虽然结合了很多算法,但是一步一步地推一下还不算太难的一道题。 首先考虑枚举枚举有用的苹果的集合,然后去算生成树个数。 先考虑怎么计算生成树个数。 发现可以使用matrix tree。 所有有用点可以和有用点以及坏点连边,所有不是坏点的无用点只能
阅读全文
摘要:做法挺多的一道题 第一种做法就是直接考虑min max容斥。 然后可以转成一个n/logn sqrt(n)的dp。 不多做赘述。 第二种,ans=sigema x p(len =x)。 令f(i)=sigema x p(前x个数的gcd是i)。 则ans=sigema i=2 n f(i) 考虑对f
阅读全文
摘要:挺不错的一个题。 题意即为求一个图的独立集方案数。 如果原图是一棵树,可以直接大力f[x][0/1]来dp。 由于非树边很少,考虑2^11容斥,强制某些点必选,然后再O(n)dp,这样应该过不了。 发现这个容斥本质上是对一些点进行修改,修改的形式是强制它必须选。 直接xjb上一个ddp就没了。 这里
阅读全文
摘要:01背包退背包 首先dp出01背包数组dp[]。 完全背包退背包 首先dp出完全背包数组dp[]。 转移的时候带系数的背包不一定可以退背包。 还有个比较经典的题 https://www.luogu.org/problemnew/show/P1450 容斥求多重背包方案数。
阅读全文
摘要:(k<=1e5,求的方案是有顺序的,即{2,3}和{3,2}不同) sol: 首先考虑没有1的限制怎么做。 就是一个很简单的插板法。 对每个因子插板法一下。 O(m)的复杂度就能求出来。 正解呢? 考虑容斥。 这样可以把不能为1的那个限制去掉。 枚举一下至少有i个位置为1后, 不妨把上一步中那个方法
阅读全文
摘要:https://www.cnblogs.com/butterflydew/p/10457362.html 一定注意容斥的时候-1的系数多减了1。 然后一种很常见的min-max容斥的策略就是以每个元素的出现时间作为权值。 最后一个出现的时间即为max,也就等价于全集出现的时间。
阅读全文
摘要:题意: 容斥二进制意义下至少哪些位置不相等。 cpp include include include include include include include include include define N 2200000 define L 2000000 define eps 1e 7 d
阅读全文
摘要:Pro: 从 给定和两条直线 要求不能穿过(可以接触)这两条直线 求方案数 Sol: 参考了这篇blog https://www.cnblogs.com/xzyxzy/p/9812585.html
阅读全文