leetcode 292.Nim游戏
思路:数学
这有一点博弈论的味道,但是我们依然可以用数学的角度去思考。
我们的入手点在这里:
我们是先手的前提下,一共有4个石头,但是每个人只能一次拿其中的1-3个。在一共有4个石头的情况下,我们无论拿走几个,总会剩下对手可以拿到的范围的石头个数,我们必输;那么,反其道而行之,我们不让它的总数是4个就行了。
以此类推,当是8个,12个等等4的倍数的时候,我们可以按照4个4个的阶段进行解读,因为我们总是选择最优的解法,我们想赢,就必须把剩余的石子个数控制在4的倍数之外。
所以,我们只需要把三种可能的结果剩余石头算出来,然后判断它们其中有没有不是4的倍数的石子个数,有一个就证明我们可以采取其中的几个策略来实施。
class Solution {public boolean canWinNim(int n) {if(n<=3)return true;else{int []arr=new int[3];arr[0]=n-1;arr[1]=n-2;arr[2]=n-3;if(arr[0]%4==0||arr[1]%4==0||arr[2]%4==0)return true;elsereturn false;}}
}
相关文章:
leetcode 292.Nim游戏
思路:数学 这有一点博弈论的味道,但是我们依然可以用数学的角度去思考。 我们的入手点在这里: 我们是先手的前提下,一共有4个石头,但是每个人只能一次拿其中的1-3个。在一共有4个石头的情况下,我们无论拿…...

《最优化方法》
课件是学习的核心内容 这门课,作业自己交,但是老师不做记录,上课不点名, 不记录平时成绩。 第一章 最优化问题的概述 1.1 概述(和考试内容无关,了解内容) 例题1.1.1运输问题 数学模型&#x…...
fork中的死锁问题
背景 当我们通过fork去创建子进程时,当父/子进程都涉及到锁的操作,可能会产生死锁。 代码样例 #include <iostream> #include <mutex> #include <unistd.h> std::mutex m; int main() {std::cout << "main process begi…...

Java面试题———SpringBoot篇
目录 1、项目中为什么选择SpringBoot 2、SpringBoot的自动装配原理 3、SpringBoot的核心注解是哪个 4、SpringBoot中的starter是干什么的 5、SpringBoot可以有哪些方式加载配置 6、bootstrap.yml和application.yml有何区别 7、SpringBoot读取配置的方式有几种 8、Spring…...

模块化沙箱:构建零信任架构的关键技术
在数字化时代,数据安全成为了企业和机构关注的焦点。模块化沙箱作为一种创新的数据安全解决方案,正逐渐成为保护敏感信息的有力工具。深信达模块化沙箱,凭借其高灵活性和高扩展性,为不同安全需求提供了定制化的解决方案。 模块化沙…...
10.14学习日志
一.矩阵 接上篇 11.伴随矩阵 设 A 是一个 nn 的方阵,其元素为 aij。伴随矩阵 adj(A)或A* 是一个 nn的矩阵,其第 i 行第 j 列的元素是 A 的余子式 Mji 的代数余子式 Cji,即: 其中 Mji是 A 的第j 行第i 列元素的余子式࿰…...

“我们为什么缺少科学精神”演讲内容拆解
演讲人张双南,视频链接: https://tv.cctv.com/2017/04/23/VIDEdqzdpmxStYXAmYBdgDP7170423.shtml...

openpyxl 3.0.7 中文教程
openpyxl 3.0.7 中文教程 python Execl 处理库教程 https://openpyxl-chinese-docs.readthedocs.io/zh-cn/latest/tutorial.html#id2 案例: 生成表格,设置单元格样式 from openpyxl import Workbook from openpyxl.styles import Font, Border, Side, …...

idea开发工具使用
idea开发工具使用 1.idea下载 2.idea设置 字体 编码格式 换行 忽略大小写 自动导包 各方法之间加横线 3.快捷键 4.导入工程 5.安装scala插件 6.运行代码 7.导入jar包 8.git托管 9.打jar包...

Android map 获取值
Android Map 获取值的完整指南 在Android开发中,使用Map(映射)来存储和检索数据是非常常见的需求。Map是一种键值对集合,能够快速而高效地根据特定的键获取值。在这篇文章中,我们将深入探讨如何在Android应用中使用Ma…...

Leetcode.13 罗马数字转整数
关键词:to_string, string.size(), string.length() 1.题目 2.解答思路及解答 解答思路: 首先,罗马数字表达中和常规数学表达类似,基本是按照从后往前,从小到大排列。因此,理论上只需要从后往前相加即可。…...

骨架提取(持续更新)
一 什么是骨架提取 1.1 简介 骨架提取是图像处理或计算机视觉中的一种技术,用于从二值化图像中提取物体的中心线或轮廓,通常称为“骨架”或“细化图像”。这一技术主要用于简化形状表示,同时保留物体的拓扑结构。 这里我们强调了ÿ…...

B3622 枚举子集
1. 注意dfs内,for循环的遍历,想清楚把什么赋值给a[x] 2.本题只需要把0或1赋值给a[x]所以 #include<bits/stdc.h> using namespace std; int n; int a[20]; int vis[20]; void pr() {for (int i 1; i < n; i) {if (a[i] 0)cout << N;els…...
git submodule add用法
背景 介绍 git submodule add 命令用于将一个 Git 仓库作为子模块添加到另一个 Git 仓库中。子模块是一个独立的 Git 仓库,但它被嵌套在另一个 Git 仓库中,并且可以通过主仓库进行管理。当你需要在主项目中引用另一个项目(子模块)…...

计算机毕业设计 基于Python的汽车销售管理系统的设计与实现 Python毕业设计 Python毕业设计选题【附源码+安装调试】
博主介绍:✌从事软件开发10年之余,专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ 🍅文末获取源码联系🍅 👇🏻 精…...
主流的安全测试工具知识点
1. 静态应用安全测试(SAST)工具 工具示例: SonarQube: 支持多种编程语言的代码质量和安全分析。Checkmarx: 提供全面的代码扫描和漏洞检测。知识点: 分析源代码或二进制代码以发现潜在的安全漏洞。早期发现和修复代码中的安全问题,减少修复成…...
如何接入实时期货行情数据 - 2024最新教程
期货市场通过标准化合约的交易,为投资者提供了在大宗商品、金融工具等方面进行风险对冲和投机的机会。量化交易以计算机模型为核心,通过历史数据和实时数据进行分析和策略执行,减少人为情绪对交易的干扰。由于期货市场的波动性强且价格变化迅…...
通义灵码:AI 编码的强大助力
一、通义灵码简介 通义灵码是阿里云推出的智能编码辅助工具,以通义大模型为基础,提供多种强大功能助力开发者高效编码。 通义灵码集成了行级 / 函数级实时续写、自然语言生成代码、单元测试生成、代码注释生成、代码解释、研发智能问答、异常报错排查等…...
docker 容器启动详解
1.启动容器 示例 1:启动一个复杂的 Web 应用容器 docker run -d \ -p 8080:80 \ -v /data/webapp:/app \ -e APP_ENVproduction \ -e DB_HOSTdb.example.com \ -it \ --network my_network \ --name webapp_container \ --restart always \ --memory 1g \ --cpu-sh…...

【spring ai】java 实现RAG检索增强,超快速入门
rag 需求产生的背景介绍: 在使用大模型时,一个常见的问题是模型会产生幻觉(即生成的内容与事实不符),同时由于缺乏企业内部数据的支持,导致其回答往往不够精准和具体,偏向于泛泛而谈。这些问题…...

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型
摘要 拍照搜题系统采用“三层管道(多模态 OCR → 语义检索 → 答案渲染)、两级检索(倒排 BM25 向量 HNSW)并以大语言模型兜底”的整体框架: 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后,分别用…...

【Python】 -- 趣味代码 - 小恐龙游戏
文章目录 文章目录 00 小恐龙游戏程序设计框架代码结构和功能游戏流程总结01 小恐龙游戏程序设计02 百度网盘地址00 小恐龙游戏程序设计框架 这段代码是一个基于 Pygame 的简易跑酷游戏的完整实现,玩家控制一个角色(龙)躲避障碍物(仙人掌和乌鸦)。以下是代码的详细介绍:…...

【kafka】Golang实现分布式Masscan任务调度系统
要求: 输出两个程序,一个命令行程序(命令行参数用flag)和一个服务端程序。 命令行程序支持通过命令行参数配置下发IP或IP段、端口、扫描带宽,然后将消息推送到kafka里面。 服务端程序: 从kafka消费者接收…...

工业安全零事故的智能守护者:一体化AI智能安防平台
前言: 通过AI视觉技术,为船厂提供全面的安全监控解决方案,涵盖交通违规检测、起重机轨道安全、非法入侵检测、盗窃防范、安全规范执行监控等多个方面,能够实现对应负责人反馈机制,并最终实现数据的统计报表。提升船厂…...

UE5 学习系列(三)创建和移动物体
这篇博客是该系列的第三篇,是在之前两篇博客的基础上展开,主要介绍如何在操作界面中创建和拖动物体,这篇博客跟随的视频链接如下: B 站视频:s03-创建和移动物体 如果你不打算开之前的博客并且对UE5 比较熟的话按照以…...

CMake 从 GitHub 下载第三方库并使用
有时我们希望直接使用 GitHub 上的开源库,而不想手动下载、编译和安装。 可以利用 CMake 提供的 FetchContent 模块来实现自动下载、构建和链接第三方库。 FetchContent 命令官方文档✅ 示例代码 我们将以 fmt 这个流行的格式化库为例,演示如何: 使用 FetchContent 从 GitH…...
C++.OpenGL (20/64)混合(Blending)
混合(Blending) 透明效果核心原理 #mermaid-svg-SWG0UzVfJms7Sm3e {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-SWG0UzVfJms7Sm3e .error-icon{fill:#552222;}#mermaid-svg-SWG0UzVfJms7Sm3e .error-text{fill…...

mac:大模型系列测试
0 MAC 前几天经过学生优惠以及国补17K入手了mac studio,然后这两天亲自测试其模型行运用能力如何,是否支持微调、推理速度等能力。下面进入正文。 1 mac 与 unsloth 按照下面的进行安装以及测试,是可以跑通文章里面的代码。训练速度也是很快的。 注意…...

2.3 物理层设备
在这个视频中,我们要学习工作在物理层的两种网络设备,分别是中继器和集线器。首先来看中继器。在计算机网络中两个节点之间,需要通过物理传输媒体或者说物理传输介质进行连接。像同轴电缆、双绞线就是典型的传输介质,假设A节点要给…...
自定义线程池1.2
自定义线程池 1.2 1. 简介 上次我们实现了 1.1 版本,将线程池中的线程数量交给使用者决定,并且将线程的创建延迟到任务提交的时候,在本文中我们将对这个版本进行如下的优化: 在新建线程时交给线程一个任务。让线程在某种情况下…...