码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2020-04-28 00:28:51      阅读:64      评论:0      收藏:0      [点我收藏+]

标签:常用   快速乘   优化   正确答案   lang   防止   答案   line   mat   

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

龟速乘

介绍

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

这里先挖个坑:光速幂

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

标签:常用   快速乘   优化   正确答案   lang   防止   答案   line   mat   

原文地址:https://www.cnblogs.com/iloveori/p/12790937.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!