#13821: 用 Python 解題心得


weiye (weiye)

學校 : 國立文華高級中學
編號 : 16127
來源 : [61.216.106.3]
最後登入時間 :
2023-03-07 11:02:39
d639. 企鵝村三兄弟penguin -- jack1 | From: [1.200.43.228] | 發表日期 : 2018-05-04 23:47

直接做會超過時間。

思考關鍵一:一串數列有初始值,而且每項都只跟前三項有關,數列的結果又 mod 10007,所以在有限的項數之內,此數列必定會開始重複。

採行策略一:利用 Python 先在本機找出此數列每多少項會開始重複,就可以建構一個有限長度的陣列,包含這些不重複的數據。

思考關鍵二:Python 內建只有 list ,單純使用 list 當陣列,會導致記憶體使用需求過多(爆掉),所以需要另外找尋可以節省記憶體,且有效率地保留數字陣列的方法。

 
#35980: Re: 用 Python 解題心得


712045@st.lths.tc.edu.tw (程式餓靈)

學校 : 嶺東高級中學
編號 : 140198
來源 : [49.213.133.237]
最後登入時間 :
2024-07-22 17:35:19
d639. 企鵝村三兄弟penguin -- jack1 | From: [111.246.85.133] | 發表日期 : 2023-06-28 11:01

直接做會超過時間。

思考關鍵一:一串數列有初始值,而且每項都只跟前三項有關,數列的結果又 mod 10007,所以在有限的項數之內,此數列必定會開始重複。

採行策略一:利用 Python 先在本機找出此數列每多少項會開始重複,就可以建構一個有限長度的陣列,包含這些不重複的數據。

思考關鍵二:Python 內建只有 list ,單純使用 list 當陣列,會導致記憶體使用需求過多(爆掉),所以需要另外找尋可以節省記憶體,且有效率地保留數字陣列的方法。

有甚麼更好的方法可以解決記憶體的問題呢?

 
#35981: Re: 用 Python 解題心得


asnewchien@gmail.com (david)

學校 : 不指定學校
編號 : 68108
來源 : [122.117.95.179]
最後登入時間 :
2024-12-12 21:48:20
d639. 企鵝村三兄弟penguin -- jack1 | From: [122.117.95.179] | 發表日期 : 2023-06-28 11:13

這題循環節 2781668

建表不會爆。

或者可以用矩陣快速冪。

 
ZeroJudge Forum