【发布时间】:2016-01-01 13:12:06
【问题描述】:
如果我正在计算 [x*(a^b)%mod+y%mod]%mod,如果我只使用 (a^b)%mod,将它与 x 相乘会给我正确的答案吗?逐步计算 (x*(a^b))%mod 不是一个更好的主意吗?只是想向自己证明为什么不包括 x 作品。 可以做什么?
【问题讨论】:
-
A[i]是整数吗?注意x * (2^y) == x << y当y是一个非负整数时。 -
键入将 pow 转换为 long long。是的 A[i] 是一个整数,所以我会使用左移运算符,但仍然不会发生整数溢出?
-
一般来说,在解决这类(竞争性编程)问题时,您永远不应该使用
pow函数。阅读:codeforces.com/blog/entry/21844 -
问题是你需要在求幂的每一步取余数,而不仅仅是在最后。请参阅我链接的 SO 问题的第一个答案,了解您需要使用的算法,而不是
<<运算符。
标签: c++ modulus integer-overflow exponent