RT,翻了一下题解,全是二分的,对 [1,106][1,10^6][1,106] 做个前缀和,差分求有没有检测点不就好了。
bool have(int l,int r){ return (kkk[r]-kkk[l-1])>0; } for(int i=1;i<=m;i++) kk[p[i]]=1; for(int i=1;i<=1000000;i++) kkk[i]=kkk[i-1]+kk[i];