C++数学

前言

C++算法与数据结构
打开打包代码的方法兼述单元测试
数论:质数、最大公约数、菲蜀定理
组合数学汇总

计算几何

博弈论

曼哈顿距离与切比雪夫距离

在这里插入图片描述
红线是哈曼顿距离,绿线是切比雪夫距离。

二维曼哈顿距离转切比雪夫距离

曼哈顿距离:|x1-x2|+|y1-y2|。典型应用:某个棋子只能向4联通移动(上下左右),哈曼顿距离就是就是两点间的移动次数。
切比雪夫距离:max(|x1-x2|,|y1-y2|)。典型应用:某个棋子只能向8联通移动(上下左右及四角),切比雪夫距离就是就是两点间的移动次数。
利用f(x,y)=(x+y,x-y)将点1(x1,y1)点2(x2,y2)转成点3(x3,y3)和点4(x4,y4)后,点1到点2的哈曼顿距离等于点3到点4的切比雪夫距离。下面来证明:
哈曼顿距离:max(x1-x2,x2-x1)+max(y1-y2,y2-y1) = max(x1-x2+y1-y2,x1-x2+y2-y1,x2-x1+y1-y2,x2-x1+y2-y1)
= max(x3-x4,y3-y4,y4-y3,x4-x3)
= max(|x3-x4|,|y3-y4|)即点3到点4的切比雪夫距离。
切比雪夫距离转哈曼顿距离:解2元一次方程组。

多维哈顿曼距离转切比雪夫距离

n维哈曼顿距离可以转化成2n-1维哈曼顿距离:
三维:(x,y,z) → \rightarrow (x+y+z,-x+y+z,x-y+z,x+y-z)。
思维及以上是我的估计,不一定正确:
a+b+c+d,a+b+c-d,a+b-c+d,a+b-c-d,a-b+c+d,a-b+c-d,a-b-c+d,a-b-c-d。
即:a只取正号,其它(n-1)维,全部取正负,共2n-1种可能。

题解2024年11月9

难度分
【C++ 数学】1823. 找出游戏的获胜者1412
【动态规划 数学】2745. 构造最长的新字符串1607
【C++数学 负进制】1017. 负二进制转换1697
【C++ 基础数学 】2121. 2615相同元素的间隔之和1760
【数学】1526: 形成目标数组的子数组最少增加次数1872
【数学】【C++算法】780. 到达终点1897
【C++完全背包 动态规划 数学】1449. 数位成本和为目标值的最大数字1927
【动态规划】【数学】【折半搜索】805 数组的均值分割1982
【数学】927. 三等分1994
3027人员站位的方案数2020
2857. 统计距离为 k 的点对2081
【数学】 【分数】 【字符串】972. 相等的有理数2121
【数学】【计算几何】1453. 圆形靶内的最大飞镖数量2201
3068最大节点价值之和2267
【数学】【位运算】LeetCoce810. 黑板异或游戏2341
【动态规划】【数学】【C++算法】818赛车2394
【动态规划】【数学】1388 3n 块披萨2409
【数学】【网格】【状态压缩】782 变为棋盘2429
【C++ 数学】1330. 翻转子数组得到最大的数组值2481
【分类讨论】【解析几何】【 数学】【推荐】1330. 翻转子数组得到最大的数组值2481
【C++数学】3197. 包含所有 1 的最小矩形面积 II2549
3139. 使数组中所有元素相等的最小开销2666
【设计】 【数学】1622 奇妙序列2476
2019. 解出数学表达式的学生分数2583
【数学】【记忆化搜索 】【动态规划】964. 表示数字的最少运算符2594
【动态规划】【 数学】C++算法:514自由之路无难度分
【动态规划 数学归纳法 二项式定理】C++ 算法458:可怜的小猪无难度分

曼哈顿距离

难度分
【C++ 曼哈顿距离 数学】1131. 绝对值表达式的最大值2059
【C++数学 曼哈顿距离】3102. 最小化曼哈顿距离2215
【键值皆有序map 线段树 数学 】3102. 最小化曼哈顿距离2215

博弈论

难度分
【C++博弈论 动态规划】1510. 石子游戏 IV1786
【C++博弈论 动态规划】1690. 石子游戏 VII1951
【贪心 临项交换 博弈论】1686. 石子游戏 VI2000
【C++ 博弈论 数学】1927. 求和游戏2004
【 C++ 博弈论 动态规划】1406. 石子游戏 III2026
【C++前缀和 动态规划 博弈】1140. 石子游戏 II2034
【博弈】843. 猜猜这个单词2077
【C++ 博弈论 动态规划】1563 石子游戏 V2087

扩展阅读

我想对大家说的话
工作中遇到的问题,可以按类别查阅鄙人的算法文章,请点击《算法与数据汇总》。
学习算法:按章节学习《喜缺全书算法册》,大量的题目和测试用例,打包下载。重视操作
有效学习:明确的目标 及时的反馈 拉伸区(难度合适) 专注
闻缺陷则喜(喜缺)是一个美好的愿望,早发现问题,早修改问题,给老板节约钱。
子墨子言之:事无终始,无务多业。也就是我们常说的专业的人做专业的事。
如果程序是一条龙,那算法就是他的是睛
失败+反思=成功 成功+反思=成功

视频课程

先学简单的课程,请移步CSDN学院,听白银讲师(也就是鄙人)的讲解。
https://edu.csdn.net/course/detail/38771
如何你想快速形成战斗了,为老板分忧,请学习C#入职培训、C++入职培训等课程
https://edu.csdn.net/lecturer/6176

测试环境

操作系统:win7 开发环境: VS2019 C++17
或者 操作系统:win10 开发环境: VS2022 C++17
如无特殊说明,本算法用**C++**实现。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/11322.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

如何安装VMWare Workstation 16虚拟机

1、到VMware官网下载安装包。 2、下一步。 3、勾选同意协议,下一步。 4、更换安装路径,下一步。 5、取消全部勾选,下一步。 6、下一步。 7、安装。 8、等待安装完成。 9、安装完成,启动软件。 10、输入许可证ZF3R0…

光流分析技术

光流分析技术是一种重要的计算机视觉和图像处理技术,它通过分析连续帧图像中像素点的运动轨迹和速度,来捕捉图像中物体的运动和相邻帧之间的位移信息。以下是对光流分析技术的详细介绍: 一、光流的基本概念 光流(Optical Flow&am…

Bearer 和 Digest 两个区别

Bearer 和 Digest 是两种常见的身份验证机制,主要用于在网络通信中验证用户的身份,以下是它们之间的区别: 认证原理 Bearer:也称为承载令牌认证,其核心是使用一个令牌(Token)来代表用户的身份信息。用户在进行身份验证后,服务器会颁发一个令牌给客户端,客户端在后续…

H264三种RTP打包方式

1. 单一NALU模式 单一NALU模式 适用于小于MTU(最大传输单元)的NALU。这种模式下,一个RTP包包含一个完整的NALU。RTP头部之后紧跟着NALU头和NALU数据。 封装格式: RTP头 | NALU头 | NALU数据这种方式简单直接,但仅适…

亚马逊评论爬虫+数据分析

爬取评论 做分析首先得有数据,数据是核心,而且要准确! 1、爬虫必要步骤,选好框架 2、开发所需数据 3、最后测试流程 这里我所选框架是seleniumrequest,很多人觉得selenium慢,确实不快,仅针对此…

批量缓存模版

批量缓存模版 缓存通常有两种使用方式,一种是Cache-Aside,一种是cache-through。也就是旁路缓存和缓存即数据源。 一般一种用于读,另一种用于读写。参考后台服务架构高性能设计之道。 最典型的Cache-Aside的样例: //读操作 da…

09 Oracle数据拯救:Flashback Technologies精细级数据恢复指南

文章目录 09 Oracle数据拯救:Flashback Technologies精细级数据恢复指南一、Flashback Technologies概览二、Flashback Query:查询过去的数据三、Flashback Table:恢复整个表四、Flashback Database:恢复整个数据库五、总结与最佳…

BIST(Built-in Self-Test,内建自测试)学习笔记

参考资料: 内建自测试(Built-in Self-Test,简称BIST)详解_built in self test-CSDN博客 芯片测试术语 ,片内测试(BIST),ATE测试-CSDN博客 可能是DFT最全面的介绍--BIST - 知乎 (zhihu.com) 汽车功能安全--TC3xx LB…

three.js 杂记

在Three.js中,Object3D是所有3D对象的基类,而Group是Object3D的一个子类。Group的目的是为了简化处理多个对象的集合。当你将对象添加到Group中时,它们会以一个单元格的形式被处理,参与Group的某些操作,例如位置更新、…

go函数传值是值传递?还是引用传递?slice案例加图解

先说下结论 Go语言中所有的传参都是值传递(传值),都是一个副本,一个拷贝。 值语义类型:参数传递的时候,就是值拷贝,这样就在函数中就无法修改原内容数据。 基本类型:byte、int、bool…

穿越时空的全球时钟:一个实时多时区显示的网页应用

引言 在当今这个全球化时代,人们经常需要与世界各地的朋友、同事或客户进行沟通。然而,由于时差的存在,找到一个合适的沟通时间往往成为一大挑战。为了解决这一问题,我们开发了一个名为“全球时钟”的网页应用,它能够…

本地部署免费开源助手Ollama

Ollama 安装 安装ollama 官方网站:https://ollama.com/download 2. 安装成功 3. 运行模型 模型:https://ollama.com/library 运行: ollama run llama3.2:3b Mac 、Linux 版本安装类似。 Open-WebUI界面安装 openwebui官网:http…

three.js杂记

空间 - 位置变换: // 假设有一个Three.js的对象: object3D // 存储矩阵位置 const matrix object3D.matrix.clone(); const matrixArray matrix.toArray(); // 转换为数组 // 之后,当你需要恢复位置时 object3D.matrix.fromArray(matrixArray); …

通过DNS服务器架构解释DNS请求过程

在前面的章节,这里,基于PCAP数据包和RFC文档详细介绍了DNS请求和响应的每个字段的含义。但是在现实的网络世界中,DNS请求和响应的数据包是怎么流动的,会经过哪些设备。本文将着重说明一下目前网络空间中DNS请求和响应的流动过程。 当前网络空间中比较常见DNS请求的流程如下…

HBase使用create创建表时报错ERROR: KeeperErrorCode = NoNode for /hbase/master

场景模拟 1. 正常情况 模拟ERROR: KeeperErrorCode NoNode for /hbase/master错误场景。 正常情况下创建hbase表如下图所示。 2. 删除hbase集群的zk节点 进入zookeeper客户端。 zkCli.sh删除hbase的zk节点。 deleteall /hbase退出zookeeper客户端。 quit3. 重启hbase集…

软件分享丨火绒应用商店

【资源分享】 资源名:火绒应用商店 官方网址:点击跳转 火绒应用商店是由火绒安全推出的一款独立软件。它提供了海量的应用程序,涵盖办公、社交、游戏、视频、工具等多种领域和类别,方便用户轻松找到所需的应用并进行一键下载安装…

在线考试系统demo页面

<!DOCTYPE html> <html lang"zh"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>在线考试系统</title><link rel"styl…

从0到1基于LangChain制作一个AI猫娘

前言&#xff1a; 看到B站上的AIVtuber的项目落地了&#xff0c;就心血来潮想制作一个AI的猫娘供自己使用&#xff0c;顺便出一个简单的教程&#xff0c;跳过理论&#xff0c;直接实践&#xff0c;作者也还在学习摸索中&#xff0c;所以有错误可以直接在评论区指正。&#xff0…

前端---高效工具(一) : NVM的使用

一、NVM用途 方便快捷 管理和切换各个 node版本。现在前端项目Vue2与Vue3很多项目要求的node版本不一致导致的。 二、安装 如果有安装nodejs&#xff0c;按一下步骤清理环境 1.卸载应用程序的 nodejs 2.删除环境变量中nodejs的配置 3.删除C:\Users\Administrator 中最下面…

反序列化漏洞浅析

Apache InLong 是开源的高性能数据集成框架&#xff0c;支持数据接入、数据同步和数据订阅&#xff0c;同时支持批处理和流处理&#xff0c;方便业务构建基于流式的数据分析、建模和应用。浅析Apache InLong < 1.12.0 JDBC反序列化漏洞&#xff08;CVE-2024-26579&#xff0…