传送门
首先题目答案可以分为三部分:只取左边,只取右边,两边都取。
发现这些问题可以由前缀gcd和后缀gcd得到。
然后可以证明前缀gcd和后缀gcd一定可以分成段数不超过logAi的相同子序列。
因为每一次gcd改变,至少除以2.
然后就是枚举起点套终点的问题了。
话说标程是O(N)的,但是我是O(NlogAi^2的)
像这种数据范围怎么可能卡log^2算法呢?
#include<cmath>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<iostream>
#include<algorithm>
#define mo 998244353
using namespace