クイック高速な乗算最適化電源+

時間におけるNの力があまりにも、乗算時間のコンピュータので、この最適化された方法を使用することができる場合、添加は分割することによって方法のように計算されます。

だから、特にどのようにあなたは彼を覚えて、下に取得していない、コードのスピードを加速することができるいくつか存在します。

#include <cstdioを>
する#include <アルゴリズム>
の#include <math.h>の
書式#include <string.hの>
使用して名前空間std。
typedefの長い長いLL。
const int型MOD = 1E9 + 7。
(LLのB、LLのR LL)quick_mul LL
{
LL ANS = 0。
一方、(B){
IF(B&1)ANS =(ANS + A)%のR。
=(A + A)%のR。
B >> = 1。
}
戻りANS。
}
LL quick_pow(-1,11,11-のB、LLのR)
{
LL ANS = 1。
一方、(B){
IF(B&1)ANS = quick_mul(ANS、R)。
= quick_mul(、R)
B >> = 1。
}
戻りANS。
}
int型のmain()
{
LL、B。
(scanf関数( "%のLLDの%のLLD"、&A、&b)は中!

printf( "%LLDする\ n"、ANS)。
}
0を返します。
}

おすすめ

転載: www.cnblogs.com/pangbi/p/11488644.html