題目大意:
給定一N * N的格子,上面各有自己分數的棋盤。
一開始為A先從第一列取數字,然後B再從A取的數字之行數取另一個數字。
而B取的數字的列數,又會決定下次A取數字的列數,以此類推,直到不能取為止(取過之數字不能再取),數字總和大為勝者。
對每一筆輸入,求A勝數、B勝數、平手數。
解題思維:
單純的DFS演算法即可通過此題目,也就是「Depth First Search(深度優先搜尋)」。
DFS的精神就在於,能做就先做。以這題為例,就是能拿什麼數字就先拿,就以這樣的狀態遞迴下去,直到A或B不能再拿任何數字了。此時,就判斷誰的分數多,就把誰的勝場數加1。
詳情可以參見我的程式碼。
本人的程式碼(放在CodePile)
此次分享到此為止,如有任何更加簡潔的想法或是有說明不清楚之地方,也煩請各位大大們可以提出來討論。