随笔分类 - 其他数学问题—容斥原理
摘要:首先我们考虑一个暴力的dp: 我们从小到大加入每个数,当我们加入第个数时,可能产生的逆序对数量是(这个证明考虑把第个数放在哪即可),这样可以列出一个递推式: 设状态表示已经加到了第个数,此时的逆序对个数为,那么有转移:$dp[i][j]=
阅读全文
摘要:考虑容斥,容斥系数-1 首先不难发现,如果没有一个公司一条边这个限制的话,就是一个很简单的矩阵树定理了 可是有了这个限制,就会出现重复 因此我们用容斥原理来解决 我们枚举哪个(些)公司没被用到,对剩下的公司跑矩阵树定理,乘一个容斥系数累计贡献即可 时间复杂度 代码:
阅读全文
摘要:容斥好题 首先我们考虑,如果没有节点之间一一对应的限制,我们可以这样: 设状态表示以为根节点的子树,节点与节点对应的方案数 那么转移就是$dp[i][j]=\prod_{son_{i}}\sum_{k=1}^{n}map[j][k]dp[son_{i}]
阅读全文
摘要:留个位置 本题...一言难尽啊... 首先可以发现,恰好为个的颜色数量为 首先我们设表示至少选了种颜色达到恰好个的方案数,那么$g(i)=C_{m}^{i}(m-i)^{n-iS}\frac{n!}{(S!)^{i}(n-iS
阅读全文
摘要:非常简单的组合数学+容斥原理 直接计算不好计算,我们用容斥原理计算:所有人随便选-至少有一个人没有礼物+至少有两个人没有礼物... 假设我们有个人没有礼物,那么方案数为 后面那个组合数的含义是对于每
阅读全文
摘要:看了好多篇题解才看懂的题,我实在太菜了... 首先根据一个我不知道的算法,可以证明在没有加入新的边的时候,原图的所有生成树的方案数就是所有点(除1以外)的度之积 那么在新加入这条边之后,我们仍然可以这样计算,但是会产生一种问题:就是会出现环! 所以我们需要利用一些容斥,把不合法的情况去掉 接下来我们
阅读全文
摘要:典型的背包+容斥 首先,考虑如果没有个数的限制,那么就是一个完全背包,所以先跑一个完全背包,求出没有个数限制的方案数即可 接下来,如果有个数的限制,那么我们就要利用一些容斥的思想:没有1个超过限制的方案=至少0个超过限制-至少1个超过限制+至少2个超过限制-至少3个超过限制+至少4个超过限制 所以我
阅读全文
摘要:一道不错的题,对排列组合能力的要求较高 题意:给定s个相同的小球放在n个不同的盒子里,可以不放,每个盒子有一个放的上限,求一共有多少种放法 解析:首先考虑没有上限的情况,这里比较好解决,采用隔板法,可以计算出放法为 看到网上很少有对这个隔板法进行详解的,这里稍微做一下解释: 隔板法,顾名思义,就是采
阅读全文
摘要:状压妙啊... 本题的主体思路:状压+容斥原理(或状压+数位dp) 记g[i]表示按位与后结果所有位上至少有i个1的方案数 那么根据容斥原理,ans=g[0]-g[1]+g[2]-g[3]+g[4]... 于是如果我们求出了g,就可以求出ans 可是怎么求出g呢 我们记f[i]表示a&i==i这样的
阅读全文