qbxt 4218: 等差

原题

给定一个等差数列,求他的各项乘积,你只需要输出其对 1145141 取模的结果。
具体的,每组给定 d,n,a 分别表示公差,长度,首项,你需要求出 i=0n1(a+i×d)mod1145141

非常降智好的一道题,赛时往根号分治想,然后寄掉了

我们考虑 d=1 怎么做,显然阶乘,然后判断是否包含 mod 的倍数即可,复杂度 O(mod)

然后推广到普遍情况,我们把这个式子提出来 d 变成: dni=0n1(ad+i)mod1145141

这不就是 adad+n1 的阶乘吗。我们得益于乘法逆元,可以直接用 a×d1mod1145141 来代替

注意特判 d=0 的情况即可,最终复杂度 O(Tlogmod),瓶颈在快速幂

posted @   FOX_konata  阅读(45)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
点击右上角即可分享
微信分享提示