codeforces689D 二分+ST表的经典搞法,和HDOJ 5726 GCD是一模一样的想法 贴个题解:HDOJ 5726 gcd 两次二分的问题 第一次二分,找到右端点的左值(如果有的话) 如果有,那么进行第二次二分,找到右端点的右值,那么对应该左端点,答案的增长是右端点的区间长度 如果没有,那么说明对应该左端点,没有符合条件的右端点 代码如下: #include<bits/stdc++.h> using namespace std; const int maxn=2e5+50; int ma[maxn][30],mi[maxn][30],n; ...