题目描述
blablabla
样例
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int main(){
ll a,b,p,res=0;
cin>>a>>b>>p;
while(b){
//二进制取位累计,需判断b是否为1,因为为0就是0乘2的n次方,
//二的零次方为零,不需要求余,那么res也就等于原值,
res=(res+(b&1?a:0))%p;
//每一个而二进制的取位操作完成之后,进行下一位的取数。
b>>=1;
//其实这个相当于a*2,因为二进制中每一位的进率为二,所以a要进行下一位的更新
a=(a+a)%p;
}
cout<<res;
}
算法1
(暴力枚举) O(n2)
blablabla
时间复杂度
参考文献
C++ 代码
blablabla
算法2
(暴力枚举) O(n2)
blablabla
时间复杂度
参考文献
C++ 代码
blablabla