C_and_CPP 板


LINE

題目敘述如下 有一個木頭, 長度是 L, 假設位於座標 (0, L)中間, 現給 n 個點 p1, p2...pn 0 <= pi <= L (1 <= i <= n). 希望可以將原本的木頭切成這 n+1 段 現在定義切木頭的cost如下 : 如果木頭長度是 L1, 則切此木頭的 cost 就是L1 (不論切在哪一個點). 試問該用何種順序才能使得切出這 n+1 段的 cost 為最小 舉例: 假設木頭位於 (0, 9) 要切的 3 個點 分別為 3, 4, 8 則如果由右往左切 cost 為 9(0 -> 9 中切 3 這個位置) + 6(3 -> 9中切 4 這 個位置) + 5(4 -> 9中切 8 這個位置) = 20 如果是由左往右切 cost 為 9(0 -> 9 中切 8 這個位置) + 8(0 -> 8中切 4 這 個位置 + 4(0 -> 4中切 3 這個位置) = 21 我的想法如下 : 定義 P(i,j) 為 (1 <= i <= n, 1 <= j <= n) 為 切第 i 刀時, 所切的位置在 j 的 cost 最小. 以下是一個簡單的觀察 : min{P(n,1), P(P,2), ... P(n,n)} = 所求 (因為共要切 n 刀, 而第 n-1 刀有可能是切在 p1, p2, ...pn 這 n 種可能) P(i, j) = min{P(i-1,1) + 切在 j 的代價, P(i-1, 2) 切在 j 的代價, ...P(i-1,n) + 切在 j 的代價} (令P(i-1,j) = 負無限大) P(1, j) = L (1 <= j <= n) 因此用 DP 填表格的方式 共 n * n 格要填 填每一格需要的時間複雜度 為 O(n) 所以時間複雜度是 O(n^3) 這樣的時間複雜度好像有點高 @@>, 請問有什麼方法可以把它的時間複雜度往下降嗎?? 感謝感謝 --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.243.192 king19880326:轉錄至看板 Prob_Solve 04/27 08:52
1F:推 Yshuan:我直覺的看 每刀都要切在中間會是cost最小 有錯嗎 @@~~! 04/27 09:30
2F:→ a127a127:給樓上 1 2 3 4 5 6 100000 04/27 09:54
3F:→ a127a127:試著把填一格的時間變成均攤的O(1) 04/27 09:55
4F:→ a127a127:一個簡單的觀察是:P(i,j) i固定,j越大時 切的點的位置.. 04/27 10:01
5F:推 evernever:我也是覺得切中間 (1+100000)/2..最接近 6...先切6 04/27 12:05
6F:推 littleshan:長度10,切割點 4, 5, 6 04/27 13:30
7F:→ king19880326:可以麻煩a127a127說得清楚些嗎@@?? 04/27 13:48
king19880326:轉錄至看板 Programming 04/27 13:52
8F:→ a127a127:不能 因為我根本沒想XD 只是給個方向 04/27 17:35
9F:推 evernever:我寫了一個模擬程式,麻煩大大們看看有沒有bug 04/27 18:06
10F:→ evernever:http://zzv.cc/CutWood.aspx 04/27 18:06
11F:→ evernever:大概的想法是先切最大塊的起來, 盡量切中間 04/27 18:13
12F:推 Fenikso:to樓上: L=7, p={1,2,3,4}你的答案是錯的 04/27 19:14
13F:→ Fenikso:正解是第一刀切4, total cost=15 04/27 19:15
14F:推 evernever:感謝指導...已修正 04/27 19:31
15F:推 Fenikso:還有錯@@" L=100, p={49,50,51} 應該是153 04/28 02:52
16F:→ evernever:辛苦了, 半夜還跑來測試, 已修正 04/28 04:57







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:iOS站內搜尋

TOP