题解:P10446 64位整数乘法
龟速乘模板。
问:啥是龟速乘?
答:当数过大时,两数相乘还没模就爆 long long 了,这显然不好 (除非你爱写高精)。
原理类似快速幂,详见this blog。
最后记得开 long long。
#include<bits/stdc++.h>
using namespace std;
long long gc(long long a, long long b, long long p){//龟速乘
a %= p, b %= p;
long long u = 0;
while(b != 0){
if(b & 1) (u += a) %= p;
b >>= 1, a = (a << 1) % p;
}
return u % p;
}
int main(){
long long a, b, p;
cin >> a >> b >> p;
cout << gc(a, b, p);
return 0;
}
posted on 2024-05-15 20:26 zhangzirui66 阅读(12) 评论(0) 收藏 举报 来源