无人机 公共场所 算法 密度

【基础算法】- 贪心

贪心 定义 贪心算法适用于最优子结构问题。意思是问题在分解成子问题来解决时,子问题的最优解能递推到最终问题的最优解。常见的符合这种性质的问题如: 「我们将 XXX 按照某某顺序排序,然后按某种顺序(例如从小到大)选择。」 「我们每次都取 XXX 中最大/小的东西,并更新 XXX。」 但比如在大部分只 ......
算法 基础

子序列相关算法

1、最长公共子序列 最长公共子序列(Longest Common Subsequence,LCS)是动态规划中的经典问题,顾名思义,即求两个序列最长的公共子序列(可以不连续)。 1 #include <iostream> 2 #include<string> 3 using namespace st ......
序列 算法

md5算法实现

前言 md5算法是我们经常会用到的一个hash函数, 虽然已经被证明是不安全的了, 但其应用依然十分广泛. 哈希函数具有如下特点: 将任意长度的字符串映射为固定长度 源数据微小的改动会导致结果差异巨大 不可逆 暴力破解困难 你有没有好奇过, 哈希函数是如何做到这些的呢? 本文就拿md5举例, 看一看 ......
算法 md5 md

公共字段自动填充

在项目开发中我们会遇到公共字段自动填充问题。那么如何进行解决和实现呢/ 那就是要用到spring第二大核心模块AOP技术。 就是自定义切面来进行实现。具体实现为; 1). 自定义注解 AutoFill,用于标识需要进行公共字段自动填充的方法 2). 自定义切面类 AutoFillAspect,统一拦 ......
字段

diff算法

什么是Diff算法?Diff算法是Vue.js的一个核心特性,它是一种用于比较虚拟DOM树的差异,并最小化DOM操作的数量。当Vue.js检测到数据更改时,它会生成一个新的虚拟DOM树,并将其与旧虚拟DOM树进行比较。Diff算法会查找差异,并仅对需要更改的部分进行DOM操作。这种算法可以帮助我们在 ......
算法 diff

算法笔记(6)数列分块

原发表于我的博客 前言 分块不能说是一种数据结构,它是一种思想,无论是数列分块,块状链表,还是数论分块,莫队算法,都应用了分块的思想。 本文主要介绍狭义上的分块,即数列分块。 数列分块的引入 数列分块可以说是暴力,一种优美的暴力,它的基本思路是,把数列分成若干块(一般取\(\sqrt n\)),分块 ......
数列 算法 笔记

算法笔记(5)贪心算法

原发表于我的博客 贪心算法 贪心与其说是一种算法,不如说一种思想。 贪心思想,顾名思义,就是总是做出当前最好的选择,这种方式可能在全局上不是最好的结果,但是在一些题目中就可以直接用。 最简单的例子就是“货比三家”,在生活中,我们买东西时都会挑性价比最优的,这就是一种贪心。 贪心算法在OI中经常与其他 ......
算法 笔记

算法笔记(4)莫队算法入门

原发表于我的博客 前言 本来想学完回滚莫队、树上莫队、二离莫队之后一起写一个博客,但是一直学不会/kk,只好把已会的普通莫队和带修莫队写了(以后会补上的) 普通莫队 莫队——优雅的暴力 莫队算法的引入 例题: 给定一个数列和若干询问,每次询问询问一段区间内不同种类数字的个数。 暴力做法 每次询问暴力 ......
算法 笔记

算法笔记(3)模拟退火

原发表于个人博客= 模拟退火的引入 假如我们有一个函数,要求它的极大值,怎么求呢? 如果这个函数满足单调性,可以用二分的方法。 如果这是一个单谷(或单峰)函数,可以用三分法。 那要是多峰函数怎么半呢? 这时就可以用随机化算法。 一种朴素的方法是:每次在当前找到的最优方案\(x\)附近寻找一个新方案。 ......
算法 笔记

算法笔记(2)FHQtreap

原发布于我的个人博客 前言 FHQtreap绝对是平衡树里最好写,最实用的,他几乎能做所有splay或其它平衡树能做的事,还能可持久化! 这篇文章将会介绍FHQtreap的基本操作和维护区间的操作,并附上例题。 基本操作 FHQtreap的基本操作只有两个,分裂和合并。 有些读者可能会问,分裂和合并 ......
算法 FHQtreap 笔记

K-medoids聚类算法

发展: 们每次选簇的平均值作为新的中心,迭代直到簇中对象分布不再变化。因此一个具有很大极端值的对象会扭曲数据分布,造成算法对极端值敏感 在聚类分析中,异常值通常会引起问题,因为它们可能会被分配到一个独立的聚类,从而干扰正常的聚类结果。这可能导致聚类算法产生不合理或不稳定的结果 定义: K-Medoi ......
算法 K-medoids medoids

算法笔记(1)线段树

原发表于个人博客。 前言 线段树,是数据结构皇冠上的明珠(我编的)。 它用途广泛,被一代代的oier应用,改进,优化。 本文介绍了线段树的基础知识和各种拓展(包括权值线段树,可持久化线段树),各种优化方式(包括zkw线段树,动态开点,离散化),希望能帮到更多的oier。 在学习线段树前,默认你应该学 ......
线段 算法 笔记

算法-共识算法

一、Paxos 基础的Paxos算法包括如下三种:Basic Paxos、Multi Paxos、Fast Paxos Paxos将系统中的角色分为提议者 (Proposer),决策者 (Acceptor),和最终决策学习者 (Learner): 【Proposer】:提出提案(Proposal)。 ......
算法 共识

manacher算法

manacher算法 斯♥哈♥学长的博客https://www.cnblogs.com/luckyblock/p/17044694.html#5140558 为什么老师叫他马拉车算法/yiw 简介 我们都知道,求最长回文子串可以枚举每一个开始的点,然后直接一个一个比较就完事,但这样的复杂度是接近 \ ......
算法 manacher

C++U4-贪心算法1

本节学习目标:贪心算法的概念以及对应练习题 贪心算法概念 贪心算法的特点 利用贪心算法的两个性质 练习1:最优装载问题 【本题算法分析】 优先把重量小的物品放进去,在容量固定的情况下,装的物品量最多。因此采用重量最轻者先装的贪心选择策略,可从局部最优达到全局最优。 参考代码 #include <io ......
算法 U4

文心一言 VS 讯飞星火 VS chatgpt (119)-- 算法导论10.3 4题

四、用go语言,我们往往希望双向链表的所有元素在存储器中保持紧凑,例如,在多数组表示中占用前m 个下标位置。(在页式虚拟存储的计算环境下,即为这种情况。)假设除指向链表本身的指针外没有其他指针指向该链表的元素,试说明如何实现过程ALLOCATE-OBIECT和 FREE-OBJECT,使得该表示保持 ......
文心 导论 算法 chatgpt VS

ADB修改Android手机的分辨率和屏幕密度

前言 之前用自动精灵操作手机的时候,需要修改手机的分辨率,后来发现用ADB工具可以免root修改 ADB方式修改 前置操作 1、用adb工具连接手机,记得开启usb调试模式 2、执行命令,进入shell模式 adb shell 分辨率设置命令 wm size [reset|WxH|WdpxHdp] ......
密度 分辨率 屏幕 Android 手机

磁盘调度算法

1、FCFS调度--先来先服务 例如,I/O请求块的柱面的顺序如下:98,183,37,122,14,124,65,67 他请求的话,是这样一个图示: 就直接根据请求序列进行调度即可,但是吧,它看起来摆动幅度就很大,这样导致这种形式的调度的性能比较差; 2、SSTF调度--最短寻道时间优先 还是按照 ......
磁盘 算法

图书推荐管理系统Python+Django网页界面+协同过滤推荐算法

一、介绍 图书管理与推荐系统。使用Python作为主要开发语言。前端采用HTML、CSS、BootStrap等技术搭建界面结构,后端采用Django作为逻辑处理,通过Ajax等技术实现数据交互通信。在图书推荐方面使用经典的协同过滤算法作为推荐算法模块。主要功能有: 角色分为普通用户和管理员 普通用户 ......
算法 管理系统 界面 网页 Python

10.23算法

缺失数字给定一个包含 [0, n] 中 n 个数的数组 nums ,找出 [0, n] 这个范围内没有出现在数组中的那个数。 示例 1: 输入:nums = [3,0,1]输出:2解释:n = 3,因为有 3 个数字,所以所有的数字都在范围 [0,3] 内。2 是丢失的数字,因为它没有出现在 num ......
算法 10.23 10 23

《安富莱嵌入式周报》第325期:开源可编程精密电阻仪,开源入耳式无线耳机,蓝牙Mesh固件更新,锂电池管理板, 无人机螺旋桨参考, QT6.6发布,IAR教育版

周报汇总地址:http://www.armbbs.cn/forum.php?mod=forumdisplay&fid=12&filter=typeid&typeid=104 更新一期视频,趁热打铁,下期CANopen专题视频将在下周发布 BSP视频教程第27期:CANopen协议栈专题,实战方式系统 ......

数据结构与算法 | 二叉树(Binary Tree)

"二叉树"(Binary Tree)这个名称的由来是因为二叉树的每个节点最多有两个子节点,一个左子节点和一个右子节点。其中,“二叉”指的是两个,因此“二叉树”表示每个节点最多可以分支成两个子节点。 ......
数据结构 算法 结构 数据 Binary

【算法】万圣节前夕的迷宫挑战(二)

在十月底一个阳光明媚的周末,小悦开始她的徒步旅行,一头高高的马尾轻轻摇曳,充满了青春的活力。她的笑容如同春日的阳光,温暖而明亮,总是让人心情愉悦。那天的徒步旅行,她选择了一条山区路线,期望能欣赏到秋天那五彩斑斓的树叶和感受大自然的魅力。 旅途中,小悦遇到了一些意料之外的障碍。她发现自己的体力迅速流失 ......
迷宫 算法

C#经典十大排序算法(完结)

C#冒泡排序算法 简介 冒泡排序算法是一种基础的排序算法,它的实现原理比较简单。核心思想是通过相邻元素的比较和交换来将最大(或最小)的元素逐步"冒泡"到数列的末尾。 详细文章描述 https://mp.weixin.qq.com/s/z_LPZ6QUFNJcwaEw_H5qbQ 代码实现 /// < ......
算法 经典

左神算法-提升02-KMP、Manacher算法

左神算法-提升02-KMP、Manacher算法 KMP算法解决的问题 字符串str1和str2,str1是否包含str2,如果包含返回str2在str1中开始的位置。 如何做到时间复杂度O(N)完成? KMP算法的全部细节和实现讲解 public static int getIndexOf(Str ......
算法 Manacher KMP 02

编程导航算法通关村第 1 关 | 链表

1. 前置知识补充 内容引用:https://www.hello-algo.com/ 数据结构 数据结构如同一副稳固而多样的框架。 它为数据的有序组织提供了蓝图,使算法得以在此基础上生动起来。 分类 1. 根据逻辑类型分类 逻辑结构揭示了数据元素之间的逻辑关系。在数组和链表中,数据按照顺序依次排列, ......
算法

【基础算法】二分查找

一、算法原理 二分查找适用于在有序数组中查找一个元素,使用了分治思想。 每次比较要查找的元素与数组的中间元素,如果要查找的元素 > 中间元素,在数组后半部分继续查找;如果要查找的元素 < 中间元素,在数组前半部分继续查找;如果要查找的元素 = 中间元素,查找结束。 二分查找通过比较要查找的元素与数组 ......
算法 基础

文心一言 VS 讯飞星火 VS chatgpt (118)-- 算法导论10.3 3题

三、用go语言,在ALLOCATE-OBJECT和 FREE-OBJECT过程的实现中,为什么不需要设置或重置对象的 prev 属性呢? 文心一言: 在 Go 语言中,ALLOCATE-OBJECT 和 FREE-OBJECT 过程的实现通常不需要显式地设置或重置对象的 prev 属性。这是因为在 ......
文心 导论 算法 chatgpt VS

深度优先算法

一、例子 提问:输入一个数字n,输出1~n的全排列。 首先,将全排列比作小盒子和扑克牌 将数字比作扑克牌,我们有1号,2号,3号扑克牌和1号2号3号3个盒子。每个盒子只能放置一个扑克牌,实现全排列。那我们如何往小盒子中放入扑克牌。每个小盒子都可能放1号、2号或者3号扑克牌,这都需要一一尝试,这里一个 ......
算法 深度

牛牛小数输出的算法

背景 输入一些内容,要求输出格式为两位随机数。 最开始思路: 1.读进来字符串,判断是否有'.' 2.根据'.'判断是否需要补0或者异常处理 3.以'.'为中心分为左右两段,在处理完成后进行拼接 总结: 1.python应该用python的思维模式去编程,不应该重复造轮子或用C++的编程思维 2.写 ......
小数 算法