【CH 4302】Interval GCD

小编 2026-06-26 阅读:461 评论:0
【题目】 传送门 题目描述: 给定一个长度为 nnn 的数列 aaa,以及 mmm 条指令 (n≤5×105,m≤105)(n≤5\\times10^5, m\\le10^5)(n≤5×105...

【题目】

传送门

题目描述:

给定一个长度为 nnn 的数列 aaa,以及 mmm 条指令 (n5×105,m105)(n≤5\\times10^5, m\\le10^5)(n5×105,m105),每条指令可能是以下两种之一:

C  l  r  d“C\\; l\\; r\\; d”Clrd,表示把 al,al+1,,ara_l,a_{l+1},…,a_ral,al+1,,ar 都加上 ddd
Q  l  r“Q\\; l \\;r”Qlr,表示询问 al,al+1,,ara_l,a_{l+1},…,a_ral,al+1,,ar 的最大公约数 (gcd)(gcd)(gcd)

输入格式:

第一行两个整数 n,mn,mn,m,第二行 nnn 个整数 aia_iai,接下来 mmm 行每条指令的格式如题目描述所示。

输出格式:

对于每个询问,输出一个整数表示答案。

样例数据:

输入
5 5
1 3 5 7 9
Q 1 5
C 1 5 1
Q 1 5
C 3 3 6
Q 2 4

输出
1
2
4

数据范围与约定:

n,m2×105n,m≤2\\times10^5n,m2×105lrl\\le rlr,数据保证任何时刻序列中的数都是不超过 26212^{62}-12621的正整数。


【分析】

数据范围为什么都不统一啊。。。

做这道题之前,要先知道一个东西,叫做辗转相减法

有一个关于它的推论,即 gcd(x,y,z)=gcd(x,yx,zy)gcd(x,y,z)=gcd(x,y-x,z-y)gcd(x,y,z)=gcd(x,yx,zy),推广到 nnn 个数也成立

这里还是简单证一下(如果有错请提出来)
假设 gcd(x,y,z)=agcd(x,y,z)=agcd(x,y,z)=a,那么必有互质的三个数 m1,m2,m3m_1,m_2,m_3m1,m2,m3 使 x=m1a,y=m2a,z=m3ax=m_1a,y=m_2a,z=m_3ax=m1a,y=m2a,z=m3a
那么 gcd(x,yx,zy)=gcd(m1a,(m2m1)a,(m3m2)a)gcd(x,y-x,z-y)=gcd(m_1a,(m_2-m_1)a,(m_3-m_2)a)gcd(x,yx,zy)=gcd(m1a,(m2m1)a,(m3m2)a)
由于 m1,m2,m3m_1,m_2,m_3m1,m2,m3 互质,所以 m1,m2m1,m3m2m_1,m_2-m_1,m_3-m_2m1,m2m1,m3m2 必然也互质,所以 gcd(x,yx,zy)=a=gcd(x,y,z)gcd(x,y-x,z-y)=a=gcd(x,y,z)gcd(x,yx,zy)=a=gcd(x,y,z)

那么,知道了这个之后又有什么用呢

我们可以用差分的思想,把原数组变为 a1,a2a1,a3a2,,anan1a_1,a_2-a_1,a_3-a_2,\\dots ,a_n-a_{n-1}a1,a2a1,a3a2,,anan1(用 sumisum_isumi 表示 aiai1a_i-a_{i-1}aiai1

这样的话,修改就好办了,直接在 sumlsum_lsumlddd,在 sumr+1sum_{r+1}sumr+1ddd(中间的数加的 ddd 相互抵消了)

查询的时候,根据辗转相减法,先找出 gcd(suml+1,suml+2,,sumr)gcd(sum_{l+1},sum_{l+2},\\dots ,sum_{r})gcd(suml+1,suml+2,,sum@font-face { font-family: "autolinktags"; src: url("https://www.seowoai.com/zb_users/plugin/AutoLinkTags/style/fonts/iconfont.woff2") format("woff2"), url("https://www.seowoai.com/zb_users/plugin/AutoLinkTags/style/fonts/iconfont.woff") format("woff"), url("https://www.seowoai.com/zb_users/plugin/AutoLinkTags/style/fonts/iconfont.ttf") format("truetype"); font-weight:normal; font-style:normal; }.tagslink::after { content:"\e613"; margin:2px 0 0 0px; font-size:12px; font-family:"autolinktags"; display:inline-block; vertical-align:top; }

版权声明

本文仅代表作者观点,不代表百度立场。
本文系作者授权百度百家发表,未经许可,不得转载。

热门文章
  • 机房智能化温湿度解决方式之POE供电以太网温湿度传感器

    机房智能化温湿度解决方式之POE供电以太网温湿度传感器
    机房智能化温湿度解决方式之POE供电以太网温湿度传感器 北京盈创力和电子科技有限公司 智能型TCP网口温湿度记录仪 北京IP网络温湿度记录仪厂家,北京盈创力和 北京智能型TCP网口温湿度记录仪IP网络温湿度记录仪是一种新型的基于TCP/IP协议双绞线以太网标准温湿度采集模块,利用它可以实现现场温度值、相对湿度值的采集,同时利用其自身的RJ45通信接口可以方便地和机房监控主机或交换机集线器进行联网。 工作于-40℃~85℃工业级带...
  • Sequential Monte Carlo Methods (SMC) 序列蒙特卡洛/粒子滤波/Bootstrap Filtering

    Sequential Monte Carlo Methods (SMC) 序列蒙特卡洛/粒子滤波/Bootstrap Filtering
    Problem Statement 我们考虑一个具有马尔可夫性质、非线性、非高斯的状态空间模型(State Space Model):对于一个时间序列上的观测结果{yt,t∈N}\\{ y_t , t \\in N \\}{yt​,t∈N},我们认为每个观测结果yty_tyt​的生成依赖于一个无法直接观察的隐变量xt∈{xt,t∈N}x_t \\in \\{x_t , t \\in N \\}xt​∈{xt​,t∈N},即:p(...
  • HTTP状态保持的原理

    HTTP状态保持的原理
    a)在用户登录之后,浏览器返回响应的时候会在响应中添加上cookieb)浏览器接收到cookie之后会自动保存c)当用户再次请求同一服务器中的其他网页的时候,浏览器会自动带上之前保存的cookied)服务接收到请求之后可以请 request 对象中取到cookie 判断当前用户是否登录  Http是无状态的,就是连接时数据互通,关闭后...
  • Hive 系统函数及示例

    Hive 系统函数及示例
    查看所有系统函数 show functions; 函数分类 内置函数【系统函数】 数学函数: floor、round、ceil、cos、log2等 字符串函数: length、reverse、trim、lower、get_json_object、repeat等 收集函数: size 转换函数: cast 日期函数: year、month、datediff、date、date_add等 条件函数: coalesce、case…w...
  • CSRF的原理和防范措施

    CSRF的原理和防范措施
    a)攻击原理:i.用户C访问正常网站A时进行登录,浏览器保存A的cookieii.用户C再访问攻击网站B,网站B上有某个隐藏的链接或者图片标签会自动请求网站A的URL地址,例如表单提交,传指定的参数iii.而攻击网站B在访问网站A的时候,浏览器会自动带上网站A的cookieiv.所以网站A在接收到请求之后可判断当前用户是登录状态,所以...
标签列表