当前位置: 首页 > news >正文

lc1025-除数博弈

题目描述

  • 爱丽丝先手
  • 初始数 n (1 <= n <= 1000)
  • 若能选出 x (0 < x < n) 使 x 能整除 n,则 n 变为 n-x
  • 若不能,则输掉

示例

输入:n = 2
输出:true
解释:爱丽丝选择 1,鲍勃无法进行操作
输入:n = 3
输出:false
解释:爱丽丝选择 1(n 变为 2),鲍勃也选择 1(n 变为 1),然后爱丽丝无法进行操作

题解

  • 思路
从 1 开始反推几个数
n: 1 2 3 4 5 6 ...F T F T F T
模拟的话,找出 n 的因子,遍历可能的情况,若能走到前面的必败态,则当前为必胜态
但这是简单题,不太可能这样做
只能猜结论,然后证明
结论:奇数必败,偶数必胜证明(数学归纳法):
边界:n=1,奇数,败
假设 k < n 时(n>1),结论成立
只需证 k = n 时结论成立
若 k 为奇数,当 x|k 时,x 必为奇数,k-x 必为偶数,那么操作完对手来到必胜态
若 k 为偶数,1 必满足 1|k,k-1 为奇数,操作完对手来到必败态
奇偶均满足结论,得证
class Solution {
public:bool divisorGame(int n) {return n % 2 == 0;}
};
http://www.wxhsa.cn/company.asp?id=2225

相关文章:

  • 漏洞解析--文件包含漏洞究竟怎么用?
  • 办公室装修 暂存
  • 博客更新公告
  • 爆:GitHub Copilot支持包括Anthropic、Azure、Google Gemini、Groq、OpenAI 和 OpenRouter等供应商API
  • JavaWeb05 - 详解
  • CF182C
  • CF185D
  • Python计算文件md5
  • CF201C
  • CF1774D
  • CF23C
  • CF37C
  • CF33D
  • 支持类 Unix 语法 ``:Windows 下用 PowerShell 7 优化 npm 和 VS Code
  • 初赛程序阅读做题要点
  • 模拟堆(手写堆 的五大操作)
  • 【A】杂题悬桨
  • 使用Osquery进行远程取证:NTFS取证扩展实战指南
  • 完整教程:简单介绍一下Clickhouse及其引擎
  • 矩阵分解
  • 11
  • 基于 Gitlab 实现 Go 的 CI/CD
  • 2025.9.11
  • 容斥原理
  • 【B】世良真纯
  • 如何使用jobleap.cn避免简历中的严重错误
  • 在 Zustand 中创建通用 Action 的优雅实践
  • 如何用产品思维优化简历的“用户体验”?
  • 简历如何优化,简历如何投递,面试如何准备?
  • 网络流做题笔记