「总结」容斥。三.广义容斥

首先让我们考虑反演的真正原理。

$fr.$反演原理

对于两个函数$f$和$g$。

我们知道:

$$g(n)=\sum\limits_{i=0}^{n}a_{n,i}f(i)$$

$$f(n)=\sum\limits_{i=0}^{n}b_{n,i}g(i)$$

将第一个式子代入第二个。

$$\begin{array}{rcl}\\f(n)&=&\sum\limits_{i=0}^{n}b_{n,i}\sum\limits_{j=0}^{i}a_{i,j}f(j)\\&=&\sum\limits_{j=0}^{n}f(j)\sum\limits_{i=j}^{n}a_{i,j}b_{n,i}\\&=&\sum\limits_{j=0}^{n}f(j)[n=j]\\ \end{array}$$

那么:

$$\sum\limits_{j=i}^{n}a_{i,j}b_{n,j}=[n=j]$$

设函数

$$c_{i,j}=[i=j]$$

那么:

$$\sum\limits_{j=i}^{n}a_{i,j}b_{n,j}=c_{n,j}$$

也就是所谓布尔表达式的提出。

这就是反演的真正原理了。

$se.$广义容斥

我所谓广义容斥不是二项式反演(二项式反演真也叫广义容斥),而是容斥原理的广义应用。

也就是容斥系数的构造。

我们发现上面那个式子,如果我们将$b$设为容斥系数,而已经得到了$a$和$c$,那么我们就可以解出来这样的系数$b$,在复杂度允许的情况下甚至可以高斯消元直接暴力求解。

复杂度不允许的情况下就需要反演的辅助了。

反演以一种既定的经典形式快速的求出容斥系数。

反演前面说的够多了。

实在不行打表找规律嘛。

$th.$系数构造

还是用最开始那种方法。我们求一个比较好求的数组$g$并且,这个$g$和我们需要的答案数组$f$有莫大的关系,我们就设:

$$ans=\sum\delta f$$

这个时候的$\delta$就是容斥系数了。

然后带入$g$求解。

另外一种方式是考虑每种方案被计入的次数。

设$m$为一种枚举方式,这个方案是$n$,某个方案满足的条件是$P$,需要满足的条件是$Q$。

$$\sum_ma_m\delta_m=[P(n)=Q]$$

简单的例子。

小学生一个班里有$A$个拿了语文$100$,$B$个数学100,$C$个英语100,$D$又有语文又有数学.....。

我们问至少有多少人拿了一个$100$。

发现$A,B,C,D,E,F$中用奇加偶减得到拿到$n$个100分的人被计算的次数就是:

$$\sum\limits_{i=1}^{n}\binom{n}{i}f(i)$$

我们需要的是:

$$\sum\limits_{i=1}^{n}\binom{n}{i}f(i)=[n>=1]$$

那么可以求出$f(i)=(-1)^{i-1}$。

证明:

等于$0$时显然成立。

$$\sum\limits_{i=1}^{n}\binom{n}{i}(-1)^{i-1}=\sum\limits_{i=0}^{n}\binom{n}{i}(-1)^{i-1}+1=0+1=1$$

如果要求至少拿了$m$次$100$的。

其实修改条件即可。

$$\sum\limits_{i=1}^{n}\binom{n}{i}f(i)=[n>=m]$$

高斯消元就可以解出。

时间复杂度不允许的情况下(大多数情况),我们期盼找到一种经典模型来适配它,利用反演得到容斥系数。

(说实话配系数挺恶心的)。

暂时这么多。

原文地址:https://www.cnblogs.com/Lrefrain/p/11691060.html

时间: 2024-07-30 22:22:12

「总结」容斥。三.广义容斥的相关文章

「PKUWC2018」猎人杀(概率+容斥+分治NTT)

https://loj.ac/problem/2541 很有意思的一道题目. 直接去算这题话,因为分母会变,你会发现不管怎么样都要枚举顺序. 考虑把题目转换,变成分母不会变的,即对于一个已经删过的,我们不把它从分母中剔除,但是,每一次的选择需要一直选直到选了一个没有被删过的. 然后再考虑怎么计算,这时就可以容斥了: 1既然要最后删除,我们枚举一个集合S一定在它之后被删,其它的随意. 设\(sw\)为\(\sum_{i\in S}w[i]\),\(W=\sum_{i=1}^n w[i]\) 最后答

「题解」:毛三琛

问题 C: 毛三琛subset 时间限制: 1 Sec  内存限制: 512 MB 题面 题面谢绝公开. 题解 一眼题解随机化,吓够呛.一句话题解:二分答案加剪枝. 外层枚举$x$,然后二分答案暴力$check$.如果当前答案对于x的check失败就continue, 因为在当前的x中不可能找到比当前答案更优秀的解.加clock卡常可以A. 貌似不需要看脸.毕竟我这个非洲人都一遍A了.复杂度$O(np+nlognlogp)$. 代码:(ps.$¥$神指出了我代码的缺陷:其实在外面直接赋值可以少一

大數據的「真面目」及其運用

大數據的定義 近年來,人們對「大數據」的關注度日益提高.這都歸因於麥肯錫全球研究院在2011年發布的研究報告.該報告認為人們即將迎來一個利用規模大到超出現有數據處理系統能力的巨量信息時代,並暗示戰略性地利用這些信息數據,就有可能產生巨大的商業機會. 那麼大數據到底是什麼呢?從字面來看,它指的是以現有信息處理技術無法應對的龐大信息量.而實際上,當我們將儲蓄了各種服務的使用信息數據與用戶的屬性信息相結合,並在這些信息數據發生時能夠全量獲取,就被稱做大數據. 典型的是互聯網服務的利用數據.另外還包括零

保障「舌尖」安全 大數據應用有錢「數」

兩會期間,空氣.水.食品安全等問題依然是關注熱點.針對食品安全風險如何把控的話題,昨日,全國政協委員嚴琦.全國政協委員杜惠平.全國政協委員彭靜等接受商報記者採訪時均建議,新的市場環境下,除了完善的制度體系建設,解決食品安全問題更需要藉助更新的技術和服務.而隨著移動互聯網.大數據等先進技術手段在食品安全領域的應用,配套建設誠信資料庫.移動APP等將迎來商機. 現狀 食品追溯體系 推廣率亟待提高 食品安全關係千家萬戶,保障「舌尖」安全目前還有哪些方面需要完善? 全國政協委員嚴琦表示,在2010年和2

「Luogu4321」随机游走

「Luogu4321」随机游走 题目描述 有一张 \(n\) 个点 \(m\) 条边的无向图,\(Q\) 组询问,每次询问给出一个出发点和一个点集 \(S\) ,求从出发点出发随机游走走遍这个点集的期望步数. \(1 \leq n \leq 18, 1 \leq Q \leq 10^5\) 解题思路 : 听说是 \(\text{pkuwc2018d2t3}\) 加强版?但是原题时限是1s,各种卡不进去感觉一定要写 \(\text{Min-Max}\) 容斥,不过反正我今年听指导建议没报 \(\t

Loj #2541「PKUWC2018」猎人杀

Loj #2541. 「PKUWC2018」猎人杀 题目链接 好巧妙的题! 游戏过程中,概率的分母一直在变化,所以就非常的不可做. 所以我们将问题转化一下:我们可以重复选择相同的猎人,只不过在一个猎人被选择了过后我们就给他打上标记,再次选择他的时候就无效.这样与原问题是等价的. 证明: 设\(sum=\sum_iw_i,kill=\sum_{i被杀死了}w_i\). 攻击到未被杀死的猎人\(i\)的概率为\(P\). 则根据题意\(P=\frac{w_i}{sum-kill}\). 问题转化后:

「Luogu2522」[HAOI2011]Problem b

「Luogu2522」[HAOI2011]Problem b problem Solution 题目要求 \[\sum_{x=a}^b\sum_{y=c}^d[gcd(x,y)=k]\] 设上式为\(Ans(a,b,c,d,k)\) 不妨来想一想\(a=1,c=1\)的时候怎么做 其实就跟「Luogu3455」[POI2007]ZAP-Queries一模一样了 略过一大堆式子,当\(a=c=1\)时 \[Ans(1,b,1,d,k)=\sum_{t=1}^{\frac{min(b,d)}{k}}

「CQOI2015」选数

「CQOI2015」选数 题目描述 我们知道,从区间[L,H](L和H为整数)中选取N个整数,总共有(H-L+1)^N种方案.小z很好奇这样选出的数的最大公约数的规律,他决定对每种方案选出的N个整数都求一次最大公约数,以便进一步研究.然而他很快发现工作量太大了,于是向你寻求帮助.你的任务很简单,小z会告诉你一个整数K,你需要回答他最大公约数刚好为K的选取方案有多少个.由于方案数较大,你只需要输出其除以1000000007的余数即可. 输入输出格式 输入格式: 输入一行,包含4个空格分开的正整数,

「BOI2007」Mokia

「BOI2007」Mokia 传送门 把查询拆成四部分然后容斥计算答案(二维前缀和) 然后 \(\text{CDQ}\) 分治算答案. 参考代码: #include <algorithm> #include <cstdio> #define rg register #define file(x) freopen(x".in", "r", stdin), freopen(x".out", "w", std