一些奇怪的但关键时刻派的上用场的算法

一些奇怪的但关键时刻派的上用场的算法

龟速乘

介绍

能有效防止运算时爆long long的一种神奇的算法。

直接背就好,常用。

代码

ll ksc(ll a, ll b, ll mod){
    ll ans = 0;
    for(;b; b >>= 1, a = (a + a) % mod) 
        if(b&1) ans = (ans + a) % mod;
    return ans;
}

快速乘

介绍

这个东西最初我感觉很不靠谱,但它就是能算出来正确答案。它就是用 \(long\ double\)来进行优化取模运算。

代码

inline ll ksc(ll x,ll y,ll p){
	ll z=(ld)x/p*y;
	ll res=(ull)x*y-(ull)z*p;
	return (res+p)%p;
}

这里先挖个坑:光速幂

猜你喜欢

转载自www.cnblogs.com/iloveori/p/12790937.html