lg容斥与反演
容斥与反演
容斥
之前从没有搞清楚的:
容斥是一种方法,为了做到不重复计数,先算总和再去除重复的方法。
所以我们可以计算任意具备一种性质的元素个数(并),通过计算“至少具备了某些元素的个数”(交)。
另一种形式:总数-不满足所有性质的元素=任意满足一种性质的元素
此时,不满足所有性质即可表示为
- 小星星 [ZJOI2016]:
- 朴素 dp:令
[int:子树i,int:i映射到j,set:子树中的对应编号集合|的方案数] - 考虑优化,寻找 dp 重复做了什么,哪些限制会导致复杂度高,可不可以不做
- 由于我们要避免重复映射,所以要存储子集。
- 所以考虑容斥解决这个问题
- 恰好不好满足,就可以转化为至少至多
或 或- 至少或至多
- 其他限制难以计算的时候
例子:用这个把他变成别的条件!
那么我们就希望,存在
那么可以递推求
反演
- 本质
二项式反演
- 再探错排
令
那么
- 证明 (vfk)
考虑这个
正确性显然
使用二项式定理展开
最后一个式子后面的求和即为
- 其他形式
常用限制放缩方法。比起容斥,这时我们不必推导容斥系数。
-
P4859已经没有什么好害怕的了:
放松限制,允许有一定重复,这样就不错了。
子集反演
- 高维前缀和/子集和
实际上认为每一个二进制数的位是一个维度,取值0/1,即有 n 个维度的前缀和
-
一维前缀和:扫一遍
-
二维前缀和:先扫x再扫y
-
高维前缀和:一维一维扫
组合意义:若 F 是 G 的高维前缀和,则 G 是 F 的高维差分。
- kosare
- Ribbons on Tree
min-max 反演
-
按位或:考虑时间问题使用
容斥。将最大的时间戳变成最小的。只需高维前缀和。
斯特林反演
- 方阵
只有行列其中一个的限制很容易,考虑用这个计算答案。看作分成若干等价类,则存在Stirling 反演的式子。
- *异或图
容斥/反演掉连通图限制。即考虑 总共-不连通
可枚举子集划分,每个子集随便连,这样就有若干连通块(大于等于子集划分个数的方案数)。
这就是至少的意义:
本文来自博客园,作者:haozexu,转载请注明原文链接:https://www.cnblogs.com/haozexu/p/18354676
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具