當前位置:編程學習大全網 - 編程軟體 - 算法筆記之博弈問題——貓和老鼠

算法筆記之博弈問題——貓和老鼠

博弈問題,需要註意,對於每個玩家,都會爭取:

LeetCode913. 貓和老鼠

兩位玩家分別扮演貓和老鼠,在壹張 無向 圖上進行遊戲,兩人輪流行動。

圖的形式是:graph[a] 是壹個列表,由滿足 ab 是圖中的壹條邊的所有節點 b 組成。

老鼠從節點 1 開始,第壹個出發;貓從節點 2 開始,第二個出發。在節點 0 處有壹個洞。

在每個玩家的行動中,他們 必須 沿著圖中與所在當前位置連通的壹條邊移動。例如,如果老鼠在節點 1 ,那麽它必須移動到 graph[1] 中的任壹節點。

此外,貓無法移動到洞中(節點 0)。

然後,遊戲在出現以下三種情形之壹時結束:

如果貓和老鼠出現在同壹個節點,貓獲勝。

如果老鼠到達洞中,老鼠獲勝。

如果某壹位置重復出現(即,玩家的位置和移動順序都與上壹次行動相同),遊戲平局。

給妳壹張圖 graph ,並假設兩位玩家都都以最佳狀態參與遊戲:

如果老鼠獲勝,則返回 1;

如果貓獲勝,則返回 2;

如果平局,則返回 0 。

題目描述比較長,但其實還是很好理解的。需要註意,每個玩家都會爭取自己獲勝。本題就是簡單的深度優先搜素+記憶化問題了。

這裏考慮的是怎麽才能算平局,我們采取的方法是,如果有n個節點,到2n輪如果還沒出結果,就認為可以平局了。

需要註意的是記憶化,memo[i][j][k] 代表貓在i,老鼠在j,在第k輪的結果。

  • 上一篇:施耐德變頻器ATV12怎設置壹個速段?說明壹下怎起動另壹個速度?怎設置才能不用外接電位器就能用?
  • 下一篇:eps在MATLAB中是什麽意思
  • copyright 2024編程學習大全網