package test;
/** * 動態規劃系列
* 1025.除數博弈
* 愛麗絲和鮑勃一起玩遊戲,他們輪流行動。愛麗絲先手開局。
* * 最初,黑板上有乙個數字 n 。在每個玩家的回合,玩家需要執行以下操作:
* * 選出任一 x,滿足 0 < x < n 且 n % x == 0 。
* 用 n - x 替換黑板上的數字 n 。
* 如果玩家無法執行這些操作,就會輸掉遊戲。
* * 只有在愛麗絲在遊戲中取得勝利時才返回 true,否則返回 false。假設兩個玩家都以最佳狀態參與遊戲。
* *
* * 示例 1:
* * 輸入:2
* 輸出:true
* 解釋:愛麗絲選擇 1,鮑勃無法進行操作。
* 示例 2:
* * 輸入:3
* 輸出:false
* 解釋:愛麗絲選擇 1,鮑勃也選擇 1,然後愛麗絲無法進行操作。
* * *
* 1 <= n <= 1000
* */
public class number_1025
/*** 動態規劃,先從dp[1],dp[2]
* dp[n] 表示n=n時的結果 true為愛麗絲贏
* 那麼dp[1]=false,dp[2]=true
* 然後往後推,如果i中有約數j,dp[i-j]=false,那麼dp[i]=true
* 如果i中,所有dp[i-j]沒有為false情況,那麼dp[i]=false;
*/public boolean divisorgame2(int n)}}
}return dp[n];}}
方法1,判斷奇偶即可:
方法2,動態規劃:
動態規劃 1025 除數博弈
難度easy 愛麗絲和鮑勃一起玩遊戲,他們輪流行動。愛麗絲先手開局。最初,黑板上有乙個數字 n 在每個玩家的回合,玩家需要執行以下操作 選出任一 x,滿足 0 x n 且 n x 0 用 n x 替換黑板上的數字 n 如果玩家無法執行這些操作,就會輸掉遊戲。只有在愛麗絲在遊戲中取得勝利時才返回 tr...
1025 除數博弈
愛麗絲和鮑勃一起玩遊戲,他們輪流行動。愛麗絲先手開局。最初,黑板上有乙個數字n。在每個玩家的回合,玩家需要執行以下操作 如果玩家無法執行這些操作,就會輸掉遊戲。只有在愛麗絲在遊戲中取得勝利時才返回true,否則返回false。假設兩個玩家都以最佳狀態參與遊戲。示例 1 輸入 2 輸出 true 解釋...
1025 除數博弈
label 博弈,數學問題,dp 愛麗絲和鮑勃一起玩遊戲,他們輪流行動。愛麗絲先手開局。最初,黑板上有乙個數字 n 在每個玩家的回合,玩家需要執行以下操作 選出任一 x,滿足 0 x n 且 n x 0 用 n x 替換黑板上的數字 n 如果玩家無法執行這些操作,就會輸掉遊戲。只有在愛麗絲在遊戲中取...