#30370: 解題想法


r1cky (hehe)

學校 : 國立臺灣師範大學
編號 : 158637
來源 : [118.167.75.176]
最後登入時間 :
2025-03-19 23:19:10
i212. 三則運算 -- 小學三年級數學習作 | From: [1.34.88.173] | 發表日期 : 2022-05-16 21:51

大數加法:用陣列,記得進位,time complexity : O(N),這裡我們假設N代表數字總位數。

大數減法:用注意借位問題,time complexity :O(N)

應該可以注意到上面的其實和普通手算的方式差不多,只是用電腦算比較大的數字而已

但乘法,如果用普通的直式乘法呢,我們考慮A×B,一個A的位數乘上B的所有位數,有N個為O(N),但是AN位,O(N)×N=O(N2),會TLE

我們把兩個數表示成多項式,答案即是乘起來後進位,這裡普通的多項式乘法time complexity還是O(N2),但我們可以利用FFTNTT來以O(NlogN)求得,這樣就會AC

補充:

一、FFT : 快速傅立葉轉換,利用複數平面的特殊性質計算,是DFT(離散傅立葉轉換)的加速版,對於N項的倆多項式相乘為O(NlogN)的,不過注意他是用double計算,有可能卡精度或卡常

卡常解決方式:

(1) 遞迴改成非遞迴,FFT前把他底層順序排好,可以加速很多

(2) 宣告const/final等修飾詞,會加速一些,據某個姓謝的說這可能是TLE的最後一根稻草。

(3) 用NTTNTT不用double計算。

 

二、NTT : 數論轉換,和FFT概念類似,但把複數概念以原根與mod代替,可以避免double噴出來的常數以及誤差,缺點是這題的time limit,我在解這題的時候因為有部分測資數字較小,而他給時限也比較小,但NTT有點難自由變動,原根與mod的質數可能要找比較麻煩。

 

 

 
#30371: Re: 解題想法


linlincaleb@gmail.com (臨末之頌)

學校 : 新北市立板橋高級中學
編號 : 132772
來源 : [203.64.161.123]
最後登入時間 :
2024-07-29 10:02:49
i212. 三則運算 -- 小學三年級數學習作 | From: [111.248.107.73] | 發表日期 : 2022-05-16 23:02

大數加法:用陣列,記得進位,time complexity : O(N),這裡我們假設N代表數字總位數。

大數減法:用注意借位問題,time complexity :O(N)

應該可以注意到上面的其實和普通手算的方式差不多,只是用電腦算比較大的數字而已

但乘法,如果用普通的直式乘法呢,我們考慮A×B,一個A的位數乘上B的所有位數,有N個為O(N),但是AN位,O(N)×N=O(N2),會TLE

我們把兩個數表示成多項式,答案即是乘起來後進位,這裡普通的多項式乘法time complexity還是O(N2),但我們可以利用FFTNTT來以O(NlogN)求得,這樣就會AC

補充:

一、FFT : 快速傅立葉轉換,利用複數平面的特殊性質計算,是DFT(離散傅立葉轉換)的加速版,對於N項的倆多項式相乘為O(NlogN)的,不過注意他是用double計算,有可能卡精度或卡常

卡常解決方式:

(1) 遞迴改成非遞迴,FFT前把他底層順序排好,可以加速很多

(2) 宣告const/final等修飾詞,會加速一些,據某個姓謝的說這可能是TLE的最後一根稻草。

(3) 用NTTNTT不用double計算。

 

二、NTT : 數論轉換,和FFT概念類似,但把複數概念以原根與mod代替,可以避免double噴出來的常數以及誤差,缺點是這題的time limit,我在解這題的時候因為有部分測資數字較小,而他給時限也比較小,但NTT有點難自由變動,原根與mod的質數可能要找比較麻煩。

 

 

你們這些毒瘤大師 對 我說的就是你 becaido 還有老鼠(還是企鵝(?)) 喔對 還有STSTONE,差點忘了

 
#30434: Re: 解題想法


fire5386 (becaidorz)

學校 : 國立清華大學
編號 : 115822
來源 : [140.114.252.214]
最後登入時間 :
2025-02-21 21:23:41
i212. 三則運算 -- 小學三年級數學習作 | From: [114.25.62.218] | 發表日期 : 2022-05-21 13:59

 

你們這些毒瘤大師 對 我說的就是你 becaido 還有老鼠(還是企鵝(?)) 喔對 還有STSTONE,差點忘了


還有Orange的linlincaleb你也忘了

 
#31790: Re: 解題想法


a302854888@gmail.com (小麥)

學校 : 不指定學校
編號 : 190267
來源 : [203.204.115.46]
最後登入時間 :
2022-08-23 18:46:16
i212. 三則運算 -- 小學三年級數學習作 | From: [203.204.115.46] | 發表日期 : 2022-08-19 20:54

 

你們這些毒瘤大師 對 我說的就是你 becaido 還有老鼠(還是企鵝(?)) 喔對 還有STSTONE,差點忘了


還有Orange的linlincaleb你也忘了


老鼠真的好毒喔 FFT大師+NTT怪獸

 
ZeroJudge Forum