#24779: C++


mdchuang1102@gmail.com (莊明達)

學校 : 不指定學校
編號 : 144301
來源 : [61.223.135.244]
最後登入時間 :
2021-05-19 21:59:18
d636. 大爆炸bomb -- jack1 | From: [114.41.40.59] | 發表日期 : 2021-03-24 18:19

Key:

number的power次方可被表示為以下形式

power為偶數:(number^2)^(power/2)

power為奇數:number * (number^2)^((power-1)/2)

如 3^13 = 3 * (3^2)^6

 

利用此特點,在計算時可大幅提升速度。

 

為了避免數字超出範圍,於每次計算後 %10007。



 

可供利用小技巧:

 

n /= 2 等同於 n >>= 1,但後者為Bit計算,相較於除法快

 

n & 1 在n為奇數時回傳true,n為偶數時回傳false,並比 n % 2 快(Bit計算)

 

 
#24789: Re:C++


mdchuang1102@gmail.com (莊明達)

學校 : 不指定學校
編號 : 144301
來源 : [61.223.135.244]
最後登入時間 :
2021-05-19 21:59:18
d636. 大爆炸bomb -- jack1 | From: [125.231.149.235] | 發表日期 : 2021-03-25 19:06

Key:

number的power次方可被表示為以下形式

power為偶數:(number^2)^(power/2)

power為奇數:number * (number^2)^((power-1)/2)

如 3^13 = 3 * (3^2)^6

 

利用此特點,在計算時可大幅提升速度。

 

為了避免數字超出範圍,於每次計算後 %10007。



 

可供利用小技巧:

 

n /= 2 等同於 n >>= 1,但後者為Bit計算,相較於除法快

 

n & 1 在n為奇數時回傳true,n為偶數時回傳false,並比 n % 2 快(Bit計算)

 

更正:n & 1 等同於 n % 2,上面寫反了

 
#24790: Re:C++


mdchuang1102@gmail.com (莊明達)

學校 : 不指定學校
編號 : 144301
來源 : [61.223.135.244]
最後登入時間 :
2021-05-19 21:59:18
d636. 大爆炸bomb -- jack1 | From: [125.231.149.235] | 發表日期 : 2021-03-25 19:10

Key:

number的power次方可被表示為以下形式

power為偶數:(number^2)^(power/2)

power為奇數:number * (number^2)^((power-1)/2)

如 3^13 = 3 * (3^2)^6

 

利用此特點,在計算時可大幅提升速度。

 

為了避免數字超出範圍,於每次計算後 %10007。



 

可供利用小技巧:

 

n /= 2 等同於 n >>= 1,但後者為Bit計算,相較於除法快

 

n & 1 在n為奇數時回傳true,n為偶數時回傳false,並比 n % 2 快(Bit計算)

 

更正:n & 1 等同於 n % 2,上面寫反了


更正x2:上面沒寫反,偶數&1回傳0,奇數&1回傳1,目前腦袋有點糊

 
ZeroJudge Forum