Description
一个长度为n的数列,选一个连续子序列,使得子序列的公约数*长度最大,求这个最大值。n<=1e5。
Solution
连续子序列一般都要用滑动窗口是吧(固定r,快速计算最优l,从r转移到r+1时无需重新计算l信息)
对于一个r,l递减时gcd也一定递减或不变,所以gcd最多有log(a[i])种不同取值
那么对于每一个相同的gcd,显然只需要保存最小的l
转移也很方便,反正最多log种元素,直接每一个暴力转移,有删除、添加、更新操作,用map来水再好不过了。
大白例题。
Code
不太会map...现在才知道first&second...膜了一发别人的代码...
1 #include 2 #include 3 #include 4 #include