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

Posted iloveori

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一些奇怪的但关键时刻派的上用场的算法相关的知识,希望对你有一定的参考价值。

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

龟速乘

介绍

能有效防止运算时爆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;
}

这里先挖个坑:光速幂

以上是关于一些奇怪的但关键时刻派的上用场的算法的主要内容,如果未能解决你的问题,请参考以下文章

详谈linux中压缩

以编程方式返回到 backstack 中的上一个片段

使用制服时 Xamarin OpenGL 片段着色器的奇怪行为

如何为导航到实现底部导航栏的活动中的上一个片段进行后推操作?

Android片段底部的奇怪空白?

关于片段生命周期