Re: [理工] 107台大資演對答案

看板Grad-ProbAsk作者 (ㄒㄒㄒㄒㄒㄒㄒㄒㄒㄒㄒx)時間5年前 (2020/01/24 00:47), 編輯推噓3(3018)
留言21則, 4人參與, 5年前最新討論串4/4 (看更多)
: http://0rz.tw/fLPOZ : 題目PDF如上 又來問這張考卷>"< 想請問題號V.a.2 題目說要用O(n^2)的時間 以一個雙邊queue(dequeue)製造max alternative sum -- 我的想法是把input sequence先由小到大sort 然後都往dequeue的一邊push進去 最後pop時輪流先從數字大的邊pop 然後小的邊pop 大的邊pop ... 總而言之就是較大的數都是+ 較小的數都是- 最後應該可以製造出optimal alternative sum? 而且耗費的時間應該就是O(nlogn)而非題目上限O(n^2) 不知道這樣的想法有沒有瑕疵(至少題目範例可以成功)...謝謝! ※ 引述《Moderator (ㄒㄒㄒㄒㄒㄒㄒㄒㄒㄒㄒx)》之銘言: : http://0rz.tw/fLPOZ : 題目PDF如上 : 想請問關於樹高 : 下面兩題都在問BINARY TREE樹高 : II(8) : IV(13) : 台大的考卷有公定ROOT高度是1還是0嗎? : 有一說法是ROOT層不會有高度 但是眾說紛紜啊@@ : ※ 引述《qscez (天使在身旁 xD)》之銘言: : : 想討論一下答案 : : I. : : EDBCA AC : : II. : : CBA : : III. : : D (討論後更正為B) : : C : : IV. : : CCCC : : V. : : (a) : : (b) : : (1) : : S,T stack : : enque(Q,x){ : : if S是滿的 return "Q滿" : : else push(S,x) : : } : : dequeue(Q){ : : if T空 { : : if S空 return "Q空" : : else pop(S) into T until S空 : : } : : x = pop(T) : : return x : : } : : (2)(3) : : VI. : : (a) 對Va.Vb 做 Dijkastra Time:O(VlogV+E) : : (b) : : (1) : : (2) 一樣做Dijkastra... Time:O(VlogV+E) -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.129.28.142 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Grad-ProbAsk/M.1579798052.A.C6A.html

01/24 01:34, 5年前 , 1F
我是先選最大的pop之後再挑最小的pop 然後重複 剛好
01/24 01:34, 1F

01/24 01:34, 5年前 , 2F
O(n^2) 你那樣的作法也是可以
01/24 01:34, 2F

01/24 01:38, 5年前 , 3F
不過題目的input應該是一個deque吧?
01/24 01:38, 3F

01/24 12:03, 5年前 , 4F
題目說要對given deque做 你這樣的做法感覺破壞了
01/24 12:03, 4F

01/24 12:03, 5年前 , 5F
原本的deque 而且也不一定能夠在原本的deque做出這
01/24 12:03, 5F

01/24 12:03, 5年前 , 6F
樣的sequence?
01/24 12:03, 6F

01/24 12:04, 5年前 , 7F
一樓的做法不就是題目給的greedy嗎?
01/24 12:04, 7F

01/24 12:34, 5年前 , 8F
這題應該要 DP 吧
01/24 12:34, 8F

01/24 13:30, 5年前 , 9F
我是挑整個deque的最大最小 題目是看兩個end的元素
01/24 13:30, 9F

01/24 13:30, 5年前 , 10F
先取較大的再取較小的
01/24 13:30, 10F

01/25 02:58, 5年前 , 11F
定義dp[a][b]為從a到b所能得的最大alternative sum
01/25 02:58, 11F

01/25 03:00, 5年前 , 12F
dp[a][b] = max{in[a]+dp[a+1][b], in[b]+dp[a][b-1]}
01/25 03:00, 12F

01/25 03:01, 5年前 , 13F
表格: n^2格 , 每格要查另外兩格得到答案 時間O(n^2)_
01/25 03:01, 13F

01/25 03:02, 5年前 , 14F
recurrence、boundary condition還要看現在要加還是減
01/25 03:02, 14F

01/25 03:03, 5年前 , 15F
寫的時候寫仔細點別漏掉就好
01/25 03:03, 15F

01/25 03:04, 5年前 , 16F
題目的deque是給定的,不能改變裡面的順序
01/25 03:04, 16F

01/25 03:07, 5年前 , 17F
a的話 隨便給個反例就行了 ex. {5,3,1,2,4}
01/25 03:07, 17F

01/25 12:32, 5年前 , 18F
你這樣定義 dp[a][b] 要怎麼考慮 alternative?
01/25 12:32, 18F

01/25 14:48, 5年前 , 19F
樓上的疑問是...?定義不清楚嗎?
01/25 14:48, 19F

01/25 14:49, 5年前 , 20F
看dp[a][b]是第幾次要取的數字 來決定這次要加還是減
01/25 14:49, 20F

01/25 14:51, 5年前 , 21F
要減的話 在上面in[a]、in[b]前面加上"-"就好
01/25 14:51, 21F
文章代碼(AID): #1UASuang (Grad-ProbAsk)
文章代碼(AID): #1UASuang (Grad-ProbAsk)