以此測資為例
10 6
9 8 9 5 3 2 6 7 8 9
目標是 k = 6
以 k 分界,可將 list 切為 4 個 list
[9, 8, 9] [5, 3, 2] [6] [7, 8, 9]
又可簡化為
[3, 2, 3] [-1, -3, -4] [0] [1, 2, 3] (每個元素和 k 的差)
又可簡化為
[3, 2, 3] [1, 3, 4] [0] [1, 2, 3] (絕對值)
將這 4 個 list 分別計算加總即可。
[3, 2, 3] = 4
[1, 3, 4] = 4
[0] = 0
[1, 2, 3] = 3
我是實作 stack 寫了個 function 來計算。
以此測資為例
10 6
9 8 9 5 3 2 6 7 8 9
目標是 k = 6
以 k 分界,可將 list 切為 4 個 list
[9, 8, 9] [5, 3, 2] [6] [7, 8, 9]
又可簡化為
[3, 2, 3] [-1, -3, -4] [0] [1, 2, 3] (每個元素和 k 的差)
又可簡化為
[3, 2, 3] [1, 3, 4] [0] [1, 2, 3] (絕對值)
將這 4 個 list 分別計算加總即可。
[3, 2, 3] = 4
[1, 3, 4] = 4
[0] = 0
[1, 2, 3] = 3
我是實作 stack 寫了個 function 來計算。
程式樂活你好
又是我
請問你是怎樣判斷要分4個list
k = 6
在 y = 6 的地方劃一條線
list 會在交叉的地方分段
可以參考下面這個圖
https://zerojudge.tw/ShowProblem?problemid=c907
以此測資為例
10 6
9 8 9 5 3 2 6 7 8 9
目標是 k = 6
以 k 分界,可將 list 切為 4 個 list
[9, 8, 9] [5, 3, 2] [6] [7, 8, 9]
又可簡化為
[3, 2, 3] [-1, -3, -4] [0] [1, 2, 3] (每個元素和 k 的差)
又可簡化為
[3, 2, 3] [1, 3, 4] [0] [1, 2, 3] (絕對值)
將這 4 個 list 分別計算加總即可。
[3, 2, 3] = 4
[1, 3, 4] = 4
[0] = 0
[1, 2, 3] = 3
我是實作 stack 寫了個 function 來計算。
程式樂活你好
又是我
請問你是怎樣判斷要分4個list
請不要在這裡回覆我
在我和你的私訊(即時訊息收件夾)告訴我
謝謝