快速幂,二分,三分模板

//快速幂
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;
	}
}

二分裸题

三分裸题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值