bostan-mori
假设答案的 ogf 是 ,若 ,对 两边提取 发现是个线性递推。
现在来直接计算 ,上下同乘 得到 ,这时分母的奇数项都变成 0 了,那么算除法的时候分子的奇数项和偶数项之间就独立了。
假如 是奇数,那么分子只有奇数项有用,于是可以看成求 ,这里 就是 只把奇数项取出来然后从 往后排得到的多项式。偶数项的递归也是类似的。
只会递归 次,那么这个算法的复杂度就是 的。
//[x^n]p(x)/q(x)
auto adjust=[&](Poly &f,int o){
int i;
for(i=o;i<(int)f.size();i+=2)
f[i/2]=f[i];
f.resize(i/2);
};
while(n){
int o=(n&1);n>>=1;
Poly rq=q;
for(int i=1;i<(int)rq.size();i+=2)rq[i]=del(0,rq[i]);
q=q*rq;
adjust(q,0);
p=p*rq;
if(!o)adjust(p,0);
else adjust(p,1);
}
if(p.size())cout<<1ll*p[0]*qpow(q[0],mod-2)%mod<<'\n';
else puts("0");
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?