【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:最近怎么老是出博弈论的题目)

相关推荐
f狐0狸x2 分钟前
【数据结构副本篇】顺序表 链表OJ
c语言·数据结构·算法·链表
paopaokaka_luck21 分钟前
基于Spring Boot+Vue的多媒体素材管理系统的设计与实现
java·数据库·vue.js·spring boot·后端·算法
电报号dapp11935 分钟前
链游系统定制化开发:引领游戏产业的新时代
游戏·机器人·去中心化·区块链
视觉小萌新37 分钟前
VScode+opencv——关于opencv多张图片拼接成一张图片的算法
vscode·opencv·算法
2的n次方_1 小时前
二维费用背包问题
java·算法·动态规划
敲敲敲-敲代码1 小时前
游戏设计:推箱子【easyx图形界面/c语言】
c语言·开发语言·游戏
simple_ssn1 小时前
【C语言刷力扣】1502.判断能否形成等差数列
c语言·算法·leetcode
寂静山林1 小时前
UVa 11855 Buzzwords
算法
Curry_Math1 小时前
LeetCode 热题100之技巧关卡
算法·leetcode
ahadee2 小时前
蓝桥杯每日真题 - 第10天
c语言·vscode·算法·蓝桥杯