LeetCode 1025. Divisor Game
题目链接:https://leetcode.com/problems/divisor-game/
题意:Alice和Bob玩一个游戏,Alice先开始。最初,黑板上有一个数字N。每一轮,选手首先需要选择一个数x(0<x<N且N%x==0),并将黑板上的数字N替换成N-x。如果哪个选手无法继续操作,则意味着输掉了游戏。如果Alice赢了返回true。
分析:
(1)先从最简单的case入手。N=1,Alice必败;N=2,Alice只能选择1,则Bob必败,Alice必胜;N=3,Alice只能选择1,则Bob必胜,Alice必败;N=4,Alice可以选择1,也可以选择2,Alice选择1,则Bob必败Alice必胜,Alice选择2,则Bob必胜Alice必败,因此,Alice一定会选择1,因此Alice胜。
(2)由此可推出结论,当Alice面对数字N时,她所需要选择的数字x必须使得Bob在处理N-x时必败,她才可能获胜。因此,如果Alice所有可以选择的x都使得Bob在处理N-x时必胜,那么Alice必败;只要Alice所有可以选择的x中有一种情况能使Bob在处理N-x时必败,那Alice都是必胜的。
class Solution {
public:
bool divisorGame(int N) {
int dp[1010];
dp[1] = 0;
for(int i = 2; i <= N; ++i){
dp[i] = 0;
for(int j = 1; j < i; ++j){
if(i % j == 0){
if(dp[i - j] == 0){
dp[i] = 1;
break;
}
}
}
}
if(dp[N]) return true;
return false;
}
};
LeetCode 1025. Divisor Game的更多相关文章
- 【Leetcode_easy】1025. Divisor Game
problem 1025. Divisor Game 参考 1. Leetcode_easy_1025. Divisor Game; 完
- 【LeetCode】1025. Divisor Game 解题报告(C++)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 找规律 动态规划 日期 题目地址:https://l ...
- 【leetcode】1025. Divisor Game
题目如下: Alice and Bob take turns playing a game, with Alice starting first. Initially, there is a numb ...
- leetcode动态规划题目总结
Hello everyone, I am a Chinese noob programmer. I have practiced questions on leetcode.com for 2 yea ...
- Weekly Contest 132
1025. Divisor Game Alice and Bob take turns playing a game, with Alice starting first. Initially, th ...
- Leetcode之动态规划(DP)专题-1025. 除数博弈(Divisor Game)
Leetcode之动态规划(DP)专题-1025. 除数博弈(Divisor Game) 爱丽丝和鲍勃一起玩游戏,他们轮流行动.爱丽丝先手开局. 最初,黑板上有一个数字 N .在每个玩家的回合,玩家需 ...
- LeetCode 1071. 字符串的最大公因子(Greatest Common Divisor of Strings) 45
1071. 字符串的最大公因子 1071. Greatest Common Divisor of Strings 题目描述 对于字符串 S 和 T,只有在 S = T + ... + T(T 与自身连 ...
- LeetCode.1025-除数游戏(Divisor Game)
这是小川的第382次更新,第411篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第244题(顺位题号是1025).Alice和Bob轮流玩游戏,Alice首先出发. 最初 ...
- 【leetcode】1283. Find the Smallest Divisor Given a Threshold
题目如下: Given an array of integers nums and an integer threshold, we will choose a positive integer di ...
随机推荐
- MySQL死锁1
MySQL行级排他锁的使用及死锁解除技巧 这篇笔记存粹是做学习记录之用,方便将来查阅,老鸟请跳过.关于MySQL排他锁的具体使用. 使用排他锁 假设有一张user表如下: id name age 1 ...
- i.MX RT1010之FlexIO模拟I2S外设
恩智浦的i.MX RT1010是跨界处理器产品,作为i.MX RT跨界MCU系列的一个新的切入点,i.MX RT1010是成本最低的LQFP封装方式与i.MX RT系列产品一贯的高性能和易用性的结合产 ...
- python __双划线 参数
''' >>> Class1.__doc__ # 类型帮助信息 'Class1 Doc.' >>> Class1.__name__ # 类型名称 'Class1' ...
- Ubuntu各个版本的镜像下载地址
http://mirrors.melbourne.co.uk/ubuntu-releases/
- MariaDB-Galera部署
Galera Cluster:集成了Galera插件的MySQL集群,是一种新型的,数据不共享的,高度冗余的高可用方案,目前Galera Cluster有两个版本,分别是Percona Xtradb ...
- Mysql 一些细节方面解析(一)--MyISAM和InnoDB的主要区别和应用场景
myisam和innodb 简介:myisam读的效果好,写的效率差,这和它数据存储格式,索引的指针和锁的策略有关的,它的数据是顺序存储的,他的索引btree上的节点是一个指向数据物理位置的指针,所以 ...
- Java 基础--移位运算符
移位运算符就是在二进制的基础上对数字进行平移.按照平移的方向和填充数字的规则分为三种: <<(左移).>>(带符号右移)和>>>(无符号右移). 1.左移 按 ...
- apache 配置虚拟目录
#注释掉apache默认的网站目录地址 #DocumentRoot "c:/Rrogram Files/Apache/htdocs" #配置一个虚拟目录 <ifModule ...
- vs下载为0的问题
问题描述:win10 下无法安装VS2017,visual studio installer下载进度始终为0,点击取消按钮后,也没有反应,visual studio installer也关闭不掉: 具 ...
- Beautisoup库
所看视频: https://www.bilibili.com/video/av9784617/?p=34 一, Beautifulsoup是一个可以从HTML或XML文件中提取数据的Python库,它 ...