摘要:快速乘的使用主要是这种情形:要计算(a * b) % p时,发现a * b爆 long long 了,而a, b, p没有爆 long long 快速乘的原理: 比如当我们需要要计算3 * 21,我们可以拆成:3*( 1 + 4 + 16 ),也就是将21拆成2的倍数累加 想要得到括号里的累加值,我
阅读全文
|
05 2022 档案
摘要:快速乘的使用主要是这种情形:要计算(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
阅读全文
摘要:在刷题的时候,很多题目答案都要求结果对1e9 + 7取模 刚开始我非常不理解,为什么要取模,取模难道结果不会变吗? 答案是结果会变,但因为原本需要得出的答案可能超出int64的范围,比如他叫你计算50!,这种情况下真正的结果判题机也不能保存下这么大的数,所以结果要求对1e9 + 7 取模,取模后答案
阅读全文
|