社区讨论

自闭萌新求助!

P4726【模板】多项式指数函数(多项式 exp)参与者 3已保存回复 3

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
3 条
当前快照
1 份
快照标识符
@mi7z33np
此快照首次捕获于
2025/11/21 05:58
4 个月前
此快照最后确认于
2025/11/21 05:58
4 个月前
查看原帖
学习了一个很好的板子,但遇到一个问题
CPP
inline void getLn(int a[],int b[],int n) {
	static int tmp[N];
	getInv(a,tmp,n); getDer(a,b,n);
	//getDer(a,tmp,n); getInv(a,b,n);
	int len=getLen(n<<1);
	DFT(tmp,len); DFT(b,len);
	for(int i=0; i<len; ++i) tmp[i]=(ll)b[i]*tmp[i]%mod;
	IDFT(tmp,len); 
	getInt(tmp,b,n);
	for(int i=n; i<len; ++i) b[i]=0;
	for(int i=0; i<len; ++i) tmp[i]=0;
}
inline void getExp(int a[],int b[],int n) {
	static int tmp[N];
	if(n==1) {b[0]=1; return;}
	getExp(a,b,(n+1)>>1);
	getLn(b,tmp,n);
	int len=getLen(n<<1);
	for(int i=0; i<n; ++i) tmp[i]=((i==0)+mod-tmp[i]+a[i])%mod;
	for(int i=n; i<len; ++i) tmp[i]=0;
	DFT(tmp,len); DFT(b,len);
	for(int i=0; i<len; ++i) b[i]=(ll)tmp[i]*b[i]%mod;
	IDFT(b,len);
	for(int i=n; i<len; ++i) b[i]=tmp[i]=0;
}

上述代码的getLn函数有个鬼畜问题:使用被注释的语句会WA两个点,评测链接(但是在多项式对数模板里是能A的),交换两个数组即使用注释上面的那条语句就正常了评测链接
请问大佬们这到底是怎么出锅的啊 QAQ

回复

3 条回复,欢迎继续交流。

正在加载回复...