首页 > 其他分享 >实验结果:第一次接触 EGF 的小孩在 2h 后大病发作

实验结果:第一次接触 EGF 的小孩在 2h 后大病发作

时间:2024-03-27 22:46:40浏览次数:23  
标签:frac limits text sum ge 大病 2h EGF Mod

看到题解区没有用纯生成函数推导的做法,第一天学会基础 GF 的小朋友突发奇想,看看能不能用 GF,不用 min - max 容斥解决问题。

(笔者水平很低,因此叙述可能会较为繁琐,见谅)

首先有一个愚蠢的想法:考虑枚举次数 \(k\),计算恰好 \(k\) 次结束的概率。对于一个 \(k\),我们需要枚举最后一次出现的元素 \(i\),那么对于前 \(k-1\) 次,需要选出除了 \(i\) 以外的元素各至少一个,因此对于剩下的元素 EGF 应该为:

\[\prod\limits_{j\neq i}(\text{e}^{\frac{c_j}{N}x}-1) \]

(\(-1\) 是减去空集,总的 EGF 是各个独立集合的 EGF 相乘)

那么要计算的答案就是:

\[\sum\limits_{k\ge 0}k[\frac{x^k}{k!}]\prod\limits_{i=1}^{M}\frac{c_i}{N}\prod\limits_{j\neq i}(\text{e}^{\frac{c_j}{N}x}-1) \]

这个式子或许可以通过你在做乘法的时候多加一维 \(0/1\) 记录有没有选到 \(i\) 来解决,但是这太唐了。

考虑一个不唐的做法:

我们不用 \(E(X)=\sum\limits_{k}k\times P(X=k)\) 来计算了,我们考虑 \(E(X)=\sum\limits_{k}P(X>k)\)(这点的正确性是显然的,考察每个 \(k\) 被计算的次数),也即 \(\sum\limits_{k}1-P(X\le k)\)。

而 \(P(X\le k)\) 这件事情是极容易刻画的:这就是随出 \(k\) 个元素,每种元素都出现至少一次的概率。

因此答案可以被表示为:

\[\sum\limits_{k\ge 0}1-[\frac{x^k}{k!}]\prod\limits_{i=1}^{M}(\text{e}^{\frac{c_i}{N}x}-1) \]

不难发现,后面那个乘积式里的东西一定可以被表示成 \(\sum\limits_{i\le N}a_i\text{e}^{\frac{i}{N}x}\) 的形式。

我们先不考虑怎么求得 \(a\) 序列,假设已经得知了 \(a\) 序列,那么答案即为:

\[\sum\limits_{k\ge 0}1-[\frac{x^k}{k!}]\sum\limits_{i\le N}a_i\text{e}^{\frac{i}{N}x} \]

这个 \(1\) 放在前面难以处理,因为如果我们只对后面这部分单独独立,前面这个 \(1\) 一求和就会得到一个发散的东西,这与我们的目的背道而驰。但是我们发现一件很牛的事情:当 \(i=N\) 的时候,后面这个系数的值必定为 \(1\)!那我们不妨把这两个东西抵消掉,得到:

\[-\sum\limits_{k\ge 0}[\frac{x^k}{k!}]\sum\limits_{i<N}a_i\text{e}^{\frac{i}{N}x} \]

考察 \([\frac{x^k}{k!}]a_i\text{e}^{\frac{i}{N}x}\) 的值:\(a_i\text{e}^{\frac{i}{N}x}=\sum\limits _{n\ge 0}\frac{a_i(\frac{i}{N})^nx^n}{n!}\),因此 \([\frac{x^k}{k!}]a_i\text{e}^{\frac{i}{N}x}=a_i(\frac{i}{N})^k\)。

因此答案为:

\[-\sum\limits_{k\ge 0}\sum\limits_{i<N}a_i(\frac{i}{N})^k \]

交换求和号:

\[-\sum\limits_{i<N}a_i\sum\limits_{k\ge 0}(\frac{i}{N})^k \]

后面那个和式运用几何级数求和处理:

\[-\sum\limits_{i<N}a_i\frac{1}{1-\frac{i}{N}} \]

做完了!最后就是这样一个简洁的结果。

现在还有一个历史遗留问题:如何求 \(a_i\)?我们的目标即为求出

\[\prod\limits_{i=1}^{M}(\text{e}^{\frac{c_i}{N}x}-1) \]

的各项系数。

先换个元,设 \(t=\text{e}^{\frac{1}{N}x}\),那么现在要求的就是

\[\prod\limits_{i=1}^{M}(t^{c_i}-1) \]

一个简单的做法是分治 NTT / 启发式合并 NTT,时间复杂度 \(\mathcal O(N\log ^2 N)\)。

还有一种复杂度更优的做法,考虑先 \(\ln\) 再 \(\exp\),即

\[(-1)^M\exp(\sum\limits_{i=1}^{M}\ln(1-t^{c_i})) \]

(这里把 \(-1\) 提出来了)然后考虑 \(\ln(1-x)=-\sum\limits_{n\ge 1}\frac{x^n}{n}\),因此得到:

\[(-1)^M\exp(\sum\limits_{i=1}^{M}\sum\limits_{j=1}^{N/c_i}-\frac{t^{c_ij}}{j}) \]

现在就可以计算了:对于每种不同的 \(c_i\) 枚举 \(j\),时间复杂度调和级数 \(\mathcal O(N\log N)\),然后做一次多项式 exp,时间复杂度 \(\mathcal O(N\log N)\)。

事实上,比对后发现得到的结果和 min - max 容斥得到的结果一致,可以认为这是推导 min - max 容斥的一种途径。

代码片段:

n=read(),m=read();
rep(i,1,m)a[i]=read(),bin[a[i]]++;
Init(n+1);
rep(i,1,n){
	rep(j,1,n){
		if(i*j>n)break;
		f[i*j]=(f[i*j]-bin[i]*inv[j]%Mod+Mod)%Mod;
	}
}
f=Exp(n+1,f);
if(m&1){
	rep(i,0,n)f[i]=(Mod-f[i])%Mod;
}
ll ans=0;
rep(i,0,n-1)ans=(ans+f[i]*n%Mod*inv[n-i])%Mod;
write((Mod-ans)%Mod);

标签:frac,limits,text,sum,ge,大病,2h,EGF,Mod
From: https://www.cnblogs.com/petitsouris/p/18100483

相关文章

  • 【兆易创新GD32H759I-EVAL开发板】USB设备 介绍1
    一、引言在当今数字化快速发展的时代,USB(通用串行总线)作为一种普遍应用的通信接口,在各种电子设备中发挥着不可或缺的作用。它不仅支持高速数据传输,而且支持热插拔,使设备连接更加方便快捷。兆易创新的GD32H7系列微控制器,凭借其卓越的计算性能和丰富的通信功能,为USB设备的开发提......
  • Atcoder ABC242H Random Painting
    对于这个\(\max\)似乎没有什么好的办法,考虑\(\min-\max\)反演。记\(t_i\)为第\(i\)格被染黑的时间,有\(E(\max(t_i))=\sum\limits_{S}(-1)^{|S|+1}E(\min(t_i))(i\inS)\)。考虑如果知道了\(S\),那么就可以知道\(c=\sum\limits_{i=1}^m[[l_j,r_j]\capS\no......
  • TheWay2Hack
    TheWay2Hackercoding阶段一打基础。主要涉及两个方面,一个是代码质量和设计,代表课程是cs61a。预计时间为一个月(因为已经过去一个月了)。另一个是步入下一阶段的先导课,是为了进入更底层视角的铺垫,csapp和NandToTetris。每周一个lab,一共7个lab,预计时间为两个半月;另一个是NandToTe......
  • EGF 练习题(近期总结 2024.3.6)
    Luogu5401珍珠题意:有\(n\)个变量,取值范围均为\([1,D]\)中的整数。求有多少种取值方案,使得可以选出至少\(m\)对变量满足每对都相等。\(1\leD\le10^5,\space0\lem\len,\space1\len\le10^9\)注意到\(D\)很小,我们可以计算出个数为奇数的值最多\(n-2m\)个,偶数最......
  • 初中英语优秀范文100篇-092How to behave well-如何举止得体
    PDF格式公众号回复关键字:SHCZFW092记忆树1Behavingwellisthesecretofgettingonwellwithothers.翻译举止得体是与他人和睦相处的秘诀简化记忆秘诀句子结构主语Behavingwell是一个动名词短语,表示举止得体谓语is是系动词,表示主语的状态或特征。表语......
  • 2024.2HL集训日记
    Day0五点起来赶飞机,困。典中典之“尊敬的Merlin旅客,您乘坐的CZ6439航班很快就要起飞了"。感谢Nihachu的带队。到HL被大气磅礴的校园被震撼到了,于是乎被震地睡了一下午(见识到了HL难吃的午饭,尤其是那个浓缩了0x7f吨酱油的干菜扣肉。晚饭同理,但有自动贩卖机。6点机房集合,自由......
  • EGF:指数型生成函数
    对于一个数列\(<a_n>\),定义其指数型生成函数(EGF)\(\hat{a}(x)=\displaystyle\sum_{n\ge0}\dfrac{a_n}{n!}x^n\)。例,排列数\(p_i=i!\)的EGF:\(\hat{p}(x)=\displaystyle\sum_{n\ge0}\dfrac{p_n}{n!}x^n=\sum_{n\ge0}x^n=\dfrac{1}{1-x}\)。(最后一步错位相减)圆排列\(q_......
  • Windows 10 version 22H2 (updated Jan 2024) 中文版、英文版下载
    Windows10version22H2(updatedJan2024)中文版、英文版下载Windows1022H2企业版arm64x64作者主页:sysin.orgWindows10更新历史记录Windows10,version22H2,alleditions发布日期:2022/10/18版本:Windows10,版本22H2Windows10版本信息2022/10/19从W......
  • Windows 10, version 22H2 (updated Jan 2024) 中文版、英文版下载
    Windows10,version22H2(updatedJan2024)中文版、英文版下载Windows1022H2企业版arm64x64请访问原文链接:https://sysin.org/blog/windows-10/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.orgWindows10更新历史记录Windows10,version22H2,alledit......
  • 无涯教程-Redis - DEBUG SEGFAULT 命令函数
    RedisDEBUGSEGFAULT执行的无效内存访问使Redis崩溃,它用于在开发过程中模拟错误。DEBUGSEGFAULT-语法以下是RedisDEBUGSEGFAULT命令的基本语法。redis127.0.0.1:6379>DEBUGSEGFAULTDEBUGSEGFAULT-示例redis127.0.0.1:6379>DEBUGSEGFAULTCouldnotcon......