摘要:快速乘的使用主要是这种情形:要计算(a * b) % p时,发现a * b爆 long long 了,而a, b, p没有爆 long long 快速乘的原理: 比如当我们需要要计算3 * 21,我们可以拆成:3*( 1 + 4 + 16 ),也就是将21拆成2的倍数累加 想要得到括号里的累加值,我
阅读全文
|
随笔分类 - 算法设计与分析
算法随笔
摘要:快速乘的使用主要是这种情形:要计算(a * b) % p时,发现a * b爆 long long 了,而a, b, p没有爆 long long 快速乘的原理: 比如当我们需要要计算3 * 21,我们可以拆成:3*( 1 + 4 + 16 ),也就是将21拆成2的倍数累加 想要得到括号里的累加值,我
阅读全文
摘要:gcd:greatest common divisor,最大公约数 欧几里得算法,也就是辗转相除法。公式:gcd(a, b) = gcd(b, a % b) 推论:gcd(b, a) == gcd(b, a-k*b) 1 //gcd模板 6 int gcd(int x, int y) { 7 ret
阅读全文
|