Joyboard

我们发现对任意的an+1a1一定为0

如果a21,那么不难发现,[3,n]都为1

再手玩几次,就会发现,数列只有可能是这个样子:[1,i]0[i+1,n]i,然后我们再决定an+1为多少

不难发现,当k=1的时候,答案为1;当k=2的时候,答案为min(n1,m)+mn;当k4的时候,答案为0;现在主要是来计算当k=3的时候

考试的时候想的是正面计算,确实可以,但是非常耗费时间,放在C题就不是让你这么算的,此时我们要想一个简单的方法,就一定要从反面考虑,输出m+11(min(n1,m)+mn)0即可

然后讲一下正面的计算:不难发现公式是i=1n1min,我们很容易地想到整除分块,但是整除分块实际上不是这个形式,所以我们仍然考虑贡献,设min=k,不难有mn(k+1)<imkn,我们发现对同一个ki的个数都是n个(这里就是跟整除分块不一样的地方了,整除分块由于变量在分母,所以是有这么一个分块在的东西,然后这里变量在分子,显然循环节都刚好是n)。但是这里有一个细节,因为我们限制了i的上下界,所以我们也要求出k的上下界,并且对k的上下界进行单独的讨论,这里就是最麻烦的地方了(比如我考场上只想到了求k的上界,却忘记了求k的下界,显然这不是一个C题该有的样子)

posted @   最爱丁珰  阅读(10)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示