切換
舊版
前往
大廳
主題

ZeroJudge - d576: 辭典遊戲 解題心得

Not In My Back Yard | 2018-08-01 21:13:43 | 巴幣 0 | 人氣 141

題目連結:d576: 辭典遊戲


題目大意:
給定一N * N的格子,上面各有自己分數的棋盤。

一開始為A先從第一列取數字,然後B再從A取的數字之行數取另一個數字。

而B取的數字的列數,又會決定下次A取數字的列數,以此類推,直到不能取為止(取過之數字不能再取),數字總和大為勝者。

對每一筆輸入,求A勝數、B勝數、平手數。


解題思維:
單純的DFS演算法即可通過此題目,也就是「Depth First Search(深度優先搜尋)」。

DFS的精神就在於,能做就先做。以這題為例,就是能拿什麼數字就先拿,就以這樣的狀態遞迴下去,直到A或B不能再拿任何數字了。此時,就判斷誰的分數多,就把誰的勝場數加1。

詳情可以參見我的程式碼。

本人的程式碼(放在CodePile)

此次分享到此為止,如有任何更加簡潔的想法或是有說明不清楚之地方,也煩請各位大大們可以提出來討論。

創作回應

更多創作