//快速幂
long long Mood(long long a,long long b) {
long long ans=1;
a%=Mod;
while(b) {
if(b&1)//取二进制最后一位 ,如果是一就进行下一步,是0 就跳过这一步
ans=ans*a%Mod;
b=b>>1;//b右移一位
a=a*a%Mod;
}
return ans;
}
//二分
while(R>L) {
int M=(L+R)>>1;//求中间值
if(A[M]==x)
return 1;//直接退出
else if(A[M]>x)
R=M-1;
else
L=M+1;
}
if(A[L]==x)//判断最后的数据是否有解
return 1;
else
return 0;
//三分
while((r-l)>=0.0000001) {
double tmp = (r-l)/3;//所要求区间的三分之一长度
lm = l + tmp;
rm = r - tmp;
if(dis(lm) <= dis(rm)) {//注意舍弃那个部分
r = rm;
} else {
l = lm;
}
}
快速幂,二分,三分模板
最新推荐文章于 2023-11-19 07:00:00 发布