自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 收藏
  • 关注

原创 数学—数论4.13

费马小定理逆元逆元乘法例题—获胜的概率。

2024-04-13 23:35:18 137 1

原创 字典树查找-3.22

例如:给n个字符串,再给一个字符串t,如何快速查找t是否在s中出现过?朴素的方法:循环遍历s1~sn,并比较si是否与t相等。

2024-03-25 20:33:45 290

原创 KMP字符串哈希-3.21

KMP算法将原本O(n^2)的字符串匹配算法优化到了O(n),可以说精髓在于next数组,它表示此时模式串下标失陪时应该移动到的位置,也表示最长的相同真前后缀的长度。字符串匹配是按匹配的第一个字母的位置来算,例如:S=“ababac”,P="aba",则出现的所有位置是1,3.hash数组h[i]表示字符串s[1~i] 的hash值,采用类似前缀和的形式求出任意一个字串的hash值。这是一种字符串匹配算法,用于匹配模式串P(短)在文本串S(长)中出现的所有位置。

2024-03-21 21:24:47 226 1

原创 基础算法-3.2

例题2)

2024-03-02 22:00:19 336

原创 基础算法-3.1

把无线空间中有限的个体映射到有限的空间中,提高算法效率。是一种将数组的值域压缩,从而更加关注元素大小的算法。也就是将原数组的元素值作为下标处理。离散化数组要求内部是有序和去重的。代码示例:给定a数组,求a的离散化数组,并通过值找到下标。

2024-03-01 23:00:22 340 1

原创 基础算法-2-27

但是注意,差分数组不能实现“边修改边查询(区间和)”,只能实现“多次修改后多次查询 ”。如果要实现“边修改边查询”需要使用树状数组、线段树等数据结构。同时利用差分数组可以快速的区间修改,下面是讲区间[l,r]都加上x的方法。差分数组diff[]的定义:diff[i]=a[i]-a[i-1]对差分数组做前缀和可以还原为原数组。

2024-02-27 21:31:52 513

原创 基础算法-2.22

进制转换的本质计算机中,数字均通过二进制补码表示1)将任意进制转换为十进制2)十进制转换为任意进制x转换为k进制: 主要步骤是 x%k ,x/=k;

2024-02-23 13:44:06 320

原创 基础算法-2.21

插入排序是一种简单直观的排序算法,基本思想是将待排序的元素逐个插入到已经排序的序列的合适位置,使得已排序序列逐渐扩大,从而构成有序序列,最终得到完全有序的序列。原理是将一个数组分成两个子数组,将子数组向下递归的排序后(当数组中仅有一个元素值无需再排序,直接返回),得到两个有序数组,然后进行O(n)的合并,最终合并成有序的原数组。快速排序是一种基于分治法的排序方法,原理是将一个数组分成两个子数组,其中一个子数组的所有元素都小于另一个子数组的元素,然后递归的对两个数组进行排序。3.大部分的动态规划。

2024-02-21 15:25:01 333

原创 基础算法-1

枚举是一种基本的算法,通过穷举所有可能的情况来解决问题。思想是将问题的解空间中的每个可能的解都枚举出来,并进行验证和比较,找到满足问题条件的最优解或者所有解。枚举适合问题规模较小、解空间可穷举的情况。优点是简单直观,不需要复杂的数学推导,易于实现。对于规模很大的情况下,枚举的时间复杂度会很高。解空间可以是一个范围内的所有数字(二元组、字符串),或者满足某个条件的所有数字。当然也可以是解空间树,一般分为子集树和排列树。循环枚举解空间。

2024-02-20 22:38:17 431

原创 STL-2.19

stack是一种先进先出的数据结构stack的常用函数push(x):在栈顶插入元素pop():弹出栈顶元素top():返回栈顶元素empty():检查栈是否为空size():返回栈中的元素个数tips:将一个数组的元素依次放入栈中,再依次取出,则可以将数组翻转。stack不能遍历。

2024-02-19 18:20:48 299

原创 STL 2.18

在c++ 中,vector是一个动态数组容器,可以存储一系列相同类型的元素。<vector>中定义。用法:vector<T> vec;T是类型。可以根据需要自动调整大小。可以通过索引来访问vector中的元素,索引从0开始,最后一个元素的索引是size()-1.push_back():在末尾添加pop_back():s=删除末尾元素insert():指定位置插入erase():删除指定位置size():获取vector中元素的数量empty():检查是否为空。

2024-02-19 00:55:24 1709 1

原创 STL的应用-2.17

下面是一个例子int main()//创建一个list容器//在链表尾部插入元素//在链表尾部插入元素//遍历链表并输出return 0;map是一种关联容器,用于存储一组键值对(key-value pairs),其中每个键(key)都是唯一的。map容器根据键来自动排序,并且可以通过键快速查找对应的值。map的函数:insert():插入元素 O(log n)erase():删除元素 O(log n)find():查找元素 O(log n)

2024-02-18 00:12:48 307 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除