【题解】CF_338D_GCD Table
solution:
猜到了结论,但是没有实力证明。
现在我把它证明出来了。
(i,j)=a_0, (i,j+1)=a_1
=>i=a_0x_0, j=a_0y_0, || i=a_1x_1, j+1=a_1y_1
=>lcm(a_0,a_1,…,a_n) | i
如果 i ≠ l c m ( a 0 , a 1 , . . . , a n ) i\ne lcm(a_0,a_1,...,a_n) i=lcm(a0,a1,...,an) ,设 i ′ = d ∗ l c m ( a 0 , a 1 , . . . , a n ) i'=d*lcm(a_0,a_1,...,a_n) i′=d∗lcm(a0,a1,...,an)
对任意的下标 l, i’=a_0x_0d, 因为 (x_0d,y_0)=1 成立,所以 (x_0,y_0)=1 也成立,故 i 也成立,所以取 i = l c m ( a 0 , a 1 , . . . , a n ) i=lcm(a_0,a_1,...,a_n) i=lcm(a0,a1,...,an) 最优。
现已知 j = a 0 y 0 j=a_0y_0 j=a0y0 , j ≡ 0 ( m o d a 0 ) j\equiv 0\pmod {a_0} j≡0(moda0)
一般的, j + l = a l y l j+l=a_ly_l j+l=alyl , j ≡ − l ( m o d a l ) j\equiv -l\pmod {a_l} j≡−l(modal)
扔进 excrt 中跑,可以得到 j ≡ x ( m o d l c m ( a 0 , a 1 , . . . , a n ) ) j\equiv x\pmod {lcm(a_0,a_1,...,a_n)} j≡x(modlcm(a0,a1,...,an)) ,注意必须 x x x 是正整数 。
现在得到 y l = i a l y_l=\frac{i}{a_l} yl=ali , x l = k i + x + l a l = k y l + x + l a l x_l=\frac{ki+x+l}{a_l}=ky_l+\frac{x+l}{a_l} xl=alki+x+l=kyl+alx+l , g c d ( x l , y l ) = g c d ( i a l , x + l a l ) gcd(x_l,y_l)=gcd(\frac{i}{a_l},\frac{x+l}{a_l}) gcd(xl,yl)=gcd(ali,alx+l) ,注意 x + l a l \frac{x+l}{a_l} alx+l 一定是一个正整数。(因为 x x x 一定是正整数)。
现在直接检验即可。时间复杂度 O(nloglcm) 。
注意点点细节,不要爆 longlong。
__EOF__

本文链接:https://www.cnblogs.com/cqbzly/p/17530265.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」