爱丽丝和鲍勃一起玩游戏,他们轮流行动。爱丽丝先手开局。

最初,黑板上有一个数字 N 。在每个玩家的回合,玩家需要执行以下操作:

选出任一 x,满足 0 < x < N 且 N % x == 0 。
用 N - x 替换黑板上的数字 N 。
如果玩家无法执行这些操作,就会输掉游戏。

只有在爱丽丝在游戏中取得胜利时才返回 True,否则返回 false。假设两个玩家都以最佳状态参与游戏。
示例 1:

输入:2
输出:true
解释:爱丽丝选择 1,鲍勃无法进行操作。

数学推导的一行代码

class Solution {public boolean divisorGame(int N) {return (N&1)==1?false:true;}
}

动态规划代码

    public boolean divisorGame(int N) {boolean[] dp=new boolean[N+1];dp[1]=false;for(int i=2;i<=N;i++)for (int j=i-1;j>0;j--){if(i%j!=0) continue;dp[i]=!dp[i-j];if(dp[i]) break;}return dp[N];}

leetcode1025. 除数博弈(dp/数学)相关推荐

  1. Leetcode1025.除数博弈

    Time: 20190903 Type: Easy 题目描述 爱丽丝和鲍勃一起玩游戏,他们轮流行动.爱丽丝先手开局. 最初,黑板上有一个数字 N .在每个玩家的回合,玩家需要执行以下操作: 选出任一 ...

  2. leetcode--1025. 除数博弈

    爱丽丝和鲍勃一起玩游戏,他们轮流行动.爱丽丝先手开局. 最初,黑板上有一个数字 N .在每个玩家的回合,玩家需要执行以下操作: 选出任一 x,满足 0 < x < N 且 N % x == ...

  3. c语言最大字符1025,leetcode1025(除数博弈)--C语言实现

    求: 爱丽丝和鲍勃一起玩游戏,他们轮流行动.爱丽丝先手开局. 最初,黑板上有一个数字 N .在每个玩家的回合,玩家需要执行以下操作: 选出任一 x,满足 0 < x < N 且 N % x ...

  4. [Swift]LeetCode1025. 除数博弈 | Divisor Game

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ ➤微信公众号:山青咏芝(shanqingyongzhi) ➤博客园地址:山青咏芝(https://www.cnblog ...

  5. Leetcode之动态规划(DP)专题-1025. 除数博弈(Divisor Game)

    Leetcode之动态规划(DP)专题-1025. 除数博弈(Divisor Game) 爱丽丝和鲍勃一起玩游戏,他们轮流行动.爱丽丝先手开局. 最初,黑板上有一个数字 N .在每个玩家的回合,玩家需 ...

  6. LeetCode 1690. 石子游戏 VII(博弈DP)

    文章目录 1. 题目 2. 解题 1. 题目 石子游戏中,爱丽丝和鲍勃轮流进行自己的回合,爱丽丝先开始 . 有 n 块石子排成一排.每个玩家的回合中,可以从行中 移除 最左边的石头或最右边的石头,并获 ...

  7. LeetCode 486. 预测赢家(博弈DP)

    文章目录 1. 题目 2. 解题 1. 题目 给定一个表示分数的非负整数数组. 玩家 1 从数组任意一端拿取一个分数,随后玩家 2 继续从剩余数组任意一端拿取分数,然后玩家 1 拿,-- . 每次一个 ...

  8. leetcode - 1025. 除数博弈

    1025. 除数博弈 ------------------------------------------ 爱丽丝和鲍勃一起玩游戏,他们轮流行动.爱丽丝先手开局. 最初,黑板上有一个数字 N .在每个 ...

  9. 一个有趣的博弈或推理游戏——除数博弈(动态规划与归纳法)

    除数博弈 除数博弈(Divisor Game)是我在leetcode上遇到的一个题目,它的描述如下: Alice and Bob take turns playing a game, with Ali ...

最新文章

  1. usaco A game
  2. splitcontainer如何设置两边一样打_墙洞加筋如何计算?
  3. c语言考试经典编程题目及答案,经典练习C语言编程的题目及答案整理
  4. java的rsa作用_java 中RSA的方式实现非对称加密的实例
  5. [转] 不要被C++“自动生成”所蒙骗
  6. javascript python 通信_Python通过websocket与js客户端通信示例分析
  7. 硬盘安装Windows 7和Ubuntu 10.04双系统
  8. PHP 与Python 读取大文件的区别
  9. 【Notes8】Linux开发环境,Linux命令,vi命令,/正则,Hash,iNode,文件查找与读取,Linux开机自启动
  10. 你对求生欲,一无所知!| 今日最佳
  11. 【Python】32 个常用入门 Python 实现
  12. JQuery datatables - column ordering, searching with multi header lines
  13. Interface Project
  14. 【作业4】朗途职业规划测试
  15. ARM CMSIS 4.5.0
  16. 分治法 --- 大整数的乘法
  17. 《真·三国无双ADVANCE》攻略
  18. 微信小程序订阅消息开发教程及代码(java后端实现)
  19. 实时换脸技术——直播,视频通话|脸部交换程序
  20. 关于background背景和img图片

热门文章

  1. java编写斐波那契数列,实战案例
  2. 安卓开发面试书籍,全世界都在问Android开发凉了吗?建议收藏
  3. 自定义PopView
  4. 标准C程序设计七---77
  5. css样式中如何设置中文字体?
  6. Appium——主从控制执行
  7. 关于JS的传递方式的小理解
  8. Python快速学习03:运算 缩进和选择
  9. 使用模板来解决接口继承问题
  10. [转][探讨]为什么说JavaScript是性价比最高的技术?