#15231: 關於這一題的解法


rollfc (胖胖貓)

學校 : 國立清華大學
編號 : 81012
來源 : [36.229.35.55]
最後登入時間 :
2024-11-24 14:19:17
b397. 找出最長共同子序列 -- 妮可 | From: [140.113.208.181] | 發表日期 : 2018-09-21 20:47

一開始是透過遞迴方法來找出所有的字串, 但發現會最後兩筆測資TLE後

就改用兩個一維陣列交替使用模擬二維陣列的方式, 暴力法把全部的答案都存起來

如果上面和左邊格子儲存的長度一樣就merge兩個vector

通過後看一下其他人發現有記憶體使用量頗少, 不超過5MB 想請問一下通過的人都怎麼做的?

通過的人有點少, 希望有大神可以回覆

 
#17986: Re:關於這一題的解法


joshlin1999 (๑˙―˙๑)

學校 : 臺北市立大安高級工業職業學校
編號 : 47443
來源 : [1.162.144.5]
最後登入時間 :
2024-06-28 14:48:43
b397. 找出最長共同子序列 -- 妮可 | From: [106.107.191.115] | 發表日期 : 2019-06-08 04:12

一開始是透過遞迴方法來找出所有的字串, 但發現會最後兩筆測資TLE後

就改用兩個一維陣列交替使用模擬二維陣列的方式, 暴力法把全部的答案都存起來

如果上面和左邊格子儲存的長度一樣就merge兩個vector

通過後看一下其他人發現有記憶體使用量頗少, 不超過5MB 想請問一下通過的人都怎麼做的?

通過的人有點少, 希望有大神可以回覆

 

DP用的二維陣列大小不大對記憶體用量影響不大。


問題應該出在暴力把答案都存起來,因為答案是會重複出現的,

以第一筆測資為例,共會產生13組答案,其中6組是重複的。

 

我是用二元樹去儲存字串,每次新增都會檢查之前有沒有存過相同的字串,沒有才進行儲存。

 

 
ZeroJudge Forum