https://zerojudge.tw/ShowProblem?problemid=b343
https://onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=2513
建議點開看一下~
感謝大大提供的測試資料,多這兩筆測試資料在解決時會更好debug!
[email protected](蛋黃酥)#38314: 提供更好的測資
這邊幫各位整理好三筆測資
範例輸入 1
1 5 8 2 1 2 1 3 2 3 3 2 3 4 4 1 4 2 4 5 1 4
範例輸入 2
1 6 6 1 2 1 2 3 2 4 2 5 2 6 6 2 6
範例輸入 3
1 3 2 1 1 2 2 3 2
範例輸出 1
5
範例輸出 2
6
範例輸出 3
2
會使用到的骨牌編號為 1 到 𝑛(已知範圍,所以我選擇用下面的方法解決)
首先我們宣告一個二維陣列名為 dominos[n+1],裡面每個位置都是空陣列 []
當推倒骨牌 i 時,dominos[ i ] 就會紀錄將被 i 骨牌推倒的骨牌編號
下面有個例子
n = 5
dominos = [ [], [], [], [], [], [] ]
^ ^ ^ ^ ^ ^
idx = 0. 1. 2. 3. 4. 5.
當我們知道推倒骨牌 4 會造成骨牌 1, 2, 5 倒下時
dominos 陣列會變成下方的樣子
dominos = [ [], [], [], [], [1, 2, 5], [] ]
^ ^ ^ ^ ^ ^
idx = 0. 1. 2. 3. 4. 5.
我拿範例輸入 1 來當示範,資料輸入後的 dominos 陣列為
dominos = [ [], [2, 3], [3], [2, 4], [1, 2, 5], [] ]