快乐的一天从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。
题目要求最长的,直接双指针搞一遍完事。