[CERC2019] Be Geeks!

非常有意思的一道题

这道题让我们求区间gcd乘max。如果只有max的话那非常好求,加进来个gcd就非常棘手。考虑对于一个数ai,他所在的最大值区间为[l,r],那么有一个经典的结论,一个数的因数大约有logV个,那这样我们就可以将[l,i]和[i,r]拆成gcd相同的几个区间,这些区间的数量大约为logV个,那么将其暴力枚举,再计算贡献,就是这两段区间的gcd的gcd,乘上两段区间的积,再乘上ai。那怎么枚举这些区间呢,这个可以二分,二分出当前区间第一个往后最远的gcd相同的地方,那怎么快速求区间gcd和呢,我们可以使用st表,然后就做完了,代码实现起来不烦。

posted @   wuhupai  阅读(6)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示