【LeetCode】每日一题 2024_2_4 Nim 游戏(找规律,博弈论)

文章目录

LeetCode?启动!!!

题目:Nim 游戏

题目链接:292. Nim 游戏

题目描述

代码与解题思路

go 复制代码
func canWinNim(n int) bool {
    return n % 4 != 0
}

找规律

我们通过模拟可以发现,如果石子是 1-3,先手必胜

如果石子是 4,先手必输

如果石子是 5-7,先手必胜

如果石子是 8,先手必败

如果石子是 9-11,先手必胜

. . . . . .

我们可以发现,假设石子是 5-7,那我们可以通过选石子的数量,让后手石子的数量变成 4,这样先手就胜利了,我们可以推断一下,谁选石子的时候是 4 的倍数,谁就会输

所以 return n % 4 != 0

(PS:但是这种方法纯纯猜的,心里没底)

博弈论

巴什博弈,只有一堆 n 个物品,两个人轮流从这堆物品中取物, 规定每次至少取一个,最多取 m 个。最后取光者得胜。 只要 n 不能整除 m+1,那么必然是先手取胜,否则后手取胜。

(PS:最近怎么老是出博弈论的题目)

相关推荐
hadage233几秒前
--- 力扣oj柱状图中最大的矩形 单调栈 ---
算法·leetcode·职场和发展
json{shen:"jing"}几秒前
18. 四数之和
数据结构·算法·leetcode
千逐-沐风1 分钟前
SMU-ACM2026冬训周报1st
算法
天赐学c语言2 分钟前
1.25 - 零钱兑换 && 理解右值以及move的作用
c++·算法·leecode
北冥湖畔的燕雀4 分钟前
C++智能指针:告别内存泄漏的利器
c++·算法
傻乐u兔7 分钟前
C语言进阶————数据在内存中的存储1
c语言·数据结构·算法
多米Domi01124 分钟前
0x3f 第42天 复习 10:39-11:33
算法·leetcode
thubier(段新建)26 分钟前
单招模考试卷模型思考(1)
算法·单招
议题一玩到30 分钟前
#leetcode# 1984. Minimum Difference Between Highest and Lowest of K Scores
数据结构·算法·leetcode
是娇娇公主~30 分钟前
算法——【最长回文子串】
c++·算法