倍增

int p=1,k=0,sum=0;

比较a数组中k之后的p个数的和与t的关系;

if(sum+s[k+p]-s[k]<=t)

sum+=s[k+p]-s[k],k+=p,p*=2;

else{

p/=2;

}

当p=0时k即为所求的位置;

原文地址:https://www.cnblogs.com/zyfltyyz/p/11751571.html