快乐的一天从AC开始 | 20210805 | CF1549D

题目链接

每日吐槽

这下好像真的告一段落了,一个需求写了3个星期。。。

开组会的时候被安排的明明白白

心路历程

推一推

思路

假设\([l, r]\)满足条件,即\(l \le k \le r, a_k \operatorname{mod} m = c \Leftrightarrow a_k = p_k \times m + c\)

多出来个\(c\)很不爽,搞个差分数组\(d\),即\(d_i = a_{i + 1} - a_i\),现在\(c\)已经被消掉了,即\(d_i = p_i \times m\)

然后只要存在\(m \ge 2\)就行了,直接搞个最大的肯定也行,最大的就是GCD。

搞个\(O(\log n)\)求区间GCD就可以了,因为没有修改操作就写了RMQ。

题目要求最长的,直接双指针搞一遍完事。

posted @ 2021-08-06 22:11  _Backl1ght  阅读(34)  评论(0编辑  收藏  举报