Re: [理工] [algo] 99中央 第5題
※ 引述《tetragramm (4Jay)》之銘言:
: 獻醜了,提供一個簡單的想法
: 就像C大推文中所說的,先sort可以有降低複雜度的效果
: 首先一樣用暴力法在 X 和 Y 集合中找到x 和 y,所需時間為θ(n^2)
: 因此就能夠知道z = k - x - y的值
: 用這個值在 Z 集合中做binary search看看能不能找到即可
: 每一次做binary search的時間複雜度為logn
: 因此最後時間複雜度為θ(n^2 log n)
: 有錯請指正
t大要求的話 我就獻醜了 :)
正如我前面推文說的 這是ACM來的
為什麼我知道呢? 因為這是我去年某堂課的hw (不過我不是中央的)
所以這方法其實也是老師上課提到的
要找 x,y,z, 使得 x + y + z = k 等同於找 x,y,z 使得 x + y = k - z
我只需要去比較 x + y , k - z 兩個list看是否有相同元素就可以了
(i) constrcut 這兩個list θ(|X|*|Y|) , θ(|Z|)
(ii) 對這兩個list做 q-sort θ(|X|*|Y|*log(|X||Y|)) , θ(|Z|*log(|Z|))
(iii) 最後就是比較, 用Binary search來做, 我想應該是
θ( log ( |X|*|Y| ) * |Z| )
( 請允許我假設|Z| < |X|*|Y| XD" )
希望我想的沒錯~
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 111.243.147.23
推
01/09 00:03, , 1F
01/09 00:03, 1F
→
01/09 00:03, , 2F
01/09 00:03, 2F
推
01/09 00:12, , 3F
01/09 00:12, 3F
因為我寫錯了XD" 感謝提醒
應該是這樣沒錯吧 我想~
※ 編輯: christianSK 來自: 111.243.147.23 (01/09 00:16)
→
01/09 00:17, , 4F
01/09 00:17, 4F
推
01/09 00:20, , 5F
01/09 00:20, 5F
→
01/09 00:21, , 6F
01/09 00:21, 6F
推
01/09 00:23, , 7F
01/09 00:23, 7F
→
01/09 00:23, , 8F
01/09 00:23, 8F
推
01/09 00:26, , 9F
01/09 00:26, 9F
→
01/09 00:27, , 10F
01/09 00:27, 10F
→
01/09 00:28, , 11F
01/09 00:28, 11F
→
01/09 00:29, , 12F
01/09 00:29, 12F
推
01/09 00:30, , 13F
01/09 00:30, 13F
→
01/09 00:34, , 14F
01/09 00:34, 14F
→
09/11 14:08, , 15F
09/11 14:08, 15F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 3 之 4 篇):