您当前的位置: 首页 > 

对方正在debug

暂无认证

  • 3浏览

    0关注

    399博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Integers Have Friends(线段树/gcd/双指针)

对方正在debug 发布时间:2021-08-08 23:26:18 ,浏览量:3

题目 题意:给定n个点,求这n个点的最长同余子串。一个序列同余,当且仅当存在数m>1,使得序列中所有数在模m的意义下相等。

参考 思路:求原数组a的相邻元素的差分数组d,问题转化为求d数组的最长连续子数组,使得该数组的gcd>1,查询连续子数组的gcd可以用线段数(没看题解,一开始竟然没反应过来orz),由于又是连续连续的,且gcd的区间查询有非递增性(即子数组的gcd一定不小于母数组的gcd),可以用双指针优化。详见代码。

#include 
using namespace std;
#define ll long long
const int maxn = 200010;
#define lson (rt            
关注
打赏
1664895754
查看更多评论
0.0683s