龟速运算
当你急需一种算法来实现“加”这种运算,但因种种原因无法打出加号,也无法复制一个加号,那么我就强烈推荐:
\(\Huge\text{龟速加!}\)
int ret1, ret2;
int add(int a, int b)
{
if(b == 0) return a;
if(a == 0) return b;
ret1 = a ^ b;
ret2 = a & b;
ret2 <<= 1;
return add(ret1, ret2);
}
屁用没有,还贼慢,是 O(log n) 的
当你急需一种算法来实现“大数带模乘”这种运算,但因种种原因无法打出乘号,也无法复制一个乘号,且乘后会爆 long long,那么我就强烈推荐:
\(\Huge\text{龟速乘!}\)
long long mul(long long a, long long b, long long p)
{
long long res = 0;
while(b)
{
if(b & 1) res = (res + a) % p;
a = (a + a) % p;
b >>= 1;
}
return res;
}
不如 int_128 和高精度
hello, I'm yuzihang, if you need to copy this, please quote this url: https://www.cnblogs.com/yuzihang/p/18712908

浙公网安备 33010602011771号