自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 C++.csp.基础算法-差分

二维前缀和:arr[][]是原数组, cf[i][j]是差分数组.第一个元素可能是下标(0,0),也可能是下标(1,1),这取决于二维数组的读入。差分就是前缀和的逆运算,对差分数组算前缀和就是原数组,而对前缀和数组进行差分也还是原数组。一维差分:arr[]是原数组, cf[i]是差分数组,第一个元素可能是下标0,也可能是下标1,这取决于数组的读入。修改差分数组: 将cf数组第3个数+1, 第5个数-1;即 -2+1=-1;先构建二维差分数组,然后操作, 最后还原;将区间内的3-4这个区间内的数-1。

2024-11-18 13:37:05 596

原创 C++.CSP.基础算法-前缀和

学信奥来[CSP帮]

2024-11-11 09:41:37 422

原创 C++.csp.基础算法-ST算法

ST表(Sparse Table)是一种用于高效处理区间查询问题的数据结构,常用于的区间查询问题,如区间最值。ST表的主要思想是预处理出一个二维数组,使得对于任意区间 [l, r],可以在 O(1) 的时间复杂度内得到其区间查询结果。

2024-11-04 08:24:37 473

原创 C++.csp.基础算法-倍增法

倍增法与二分法是“相反”的算法,二分法是每次缩小一半,从而以O(log(n))的速度快速缩小定位到解;倍增法是每次扩大一倍,从而以O(pow(2,n))的速度快速地扩展到解空间。pow是c++中指数运算, pow(2,n)指的是2的n次方, 需要引入运算头文件倍增思想的优点在于它通过空间换时间的方式来提高查询效率,尤其在需要频繁查询某个区间内信息的情况下,可以显著减少计算量。

2024-10-28 09:00:21 385

原创 信奥赛.C++.基础算法-尺取法

尺取法:也可称为双指针,是算法竞赛种常用的一个优化技巧,顾名思义,就是像一把尺子(固定某一条件),不断向右(左)移动,不断更新所求答案,用来解决序列区间问题。该方法主要有两种扫描方式:反向扫描和同向扫描。

2024-10-21 10:12:10 290

原创 C++.信奥赛.基础算法-二分法

二分法(Binary Search)是一种在有序数组中查找某一特定元素的搜索算法。它的主要思想是通过每一次查找排除一半的数据,从而将搜索范围迅速缩小,直到找到目标元素或者确定目标元素不存在为止。

2024-10-19 10:47:49 331

原创 C++.信奥赛.STL专题-map (键值对)

/第一个是键(key)的类型(type1name),第二个是值(value)的类型(type2name)//key的类型是string value 类型是int//key的类型是int value 类型是int 类似数组//key的类型是string value 类型是string//key的类型是int value 类型是string。

2024-10-18 07:35:55 392

原创 C++.信奥赛.STL专题-set (集合)

set 变量名;set s;// 定义一个int类型的 set, 变量名字是s。

2024-10-17 15:28:34 508

原创 CSP.C++.J2.STL专题-priority_queue (优先队列)

C++ 中的优先队列(priority_queue)是一种特别的队列,其中每个元素都有各自的优先级,优先级最高的元素最先被移除。简而言之,就是自动排序.题目是入门级,简单来说需要实现的功能可由优先队列直接实现 1:入队 2:输出 3:出队。以int 类型priority_queue举例说明 链表变量 q;口诀: ** 进出空大小,取首尾**7 练习题 P3378 【模板】堆。

2024-10-17 07:45:00 376

原创 C++.csp.STL专题-stack(栈)

队列(Queue)是一种线性数据结构,其特点是数据的插入和删除操作分别在不同的两端进行:插入操作在队列的尾部,删除操作在队列的头部。因此,队列遵循先进先出(FIFO, First In First Out)的原则,即最早进入队列的元素最先被处理。以下是一个while循环, 循环条件是栈不为空, 再将栈顶弹出.7 练习题 P1540 [NOIP2010 提高组] 机器翻译。以int 类型stack举例说明 链表变量 s;口诀: ** 进出空大小,取首尾**stack 名称;

2024-10-16 11:32:38 301 1

原创 C++.csp.STL专题-queue(队列)

队列(Queue)是一种线性数据结构,其特点是数据的插入和删除操作分别在不同的两端进行:插入操作在队列的尾部,删除操作在队列的头部。创建一个队列用于存放内存中的单词, 创建一个int型数组,作为标记数组, 用于记录编号单词是否存在于内存中, 同时在操作队列时候, 移除或者加入单词,改变标记数组中记录的值.以下是一个while循环, 循环条件是队列不为空, 循环体内是将队首元素放到队尾, 然后再将队首出队.7 练习题 P1540 [NOIP2010 提高组] 机器翻译。口诀: ** 进出空大小,取首尾**

2024-10-16 07:56:25 359

原创 信奥赛.csp.C++.J2.STL专题-list(链表)

(1) list是可以在常数范围内在任意位置进行插入和删除的序列式容器,并且该容器可以前后双向迭代。(双向迭代指的是支持向前以及向后对链表进行遍历)(3) list最大的缺陷是 不支持任意位置的随机访问 ,比如:要访问list的第6个元素,必须从已知的位置(比如头部或者尾部)遍历到该位置。(2) list通常 在任意位置进行插入、移除元素的执行效率更好。

2024-10-15 13:58:51 314

原创 信奥赛.CSP.C++.STL专题-vector (向量)

(2)就像数组一样,vector也采用的连续存储空间来存储元素。也就是意味着可以采用下标对vector的元素进行访问,和数组一样高效。但是又不像数组,它的大小是可以动态改变的,而且它的大小会被容器自动处理。以int 类型vector举例说明 链表变量 v;(1)vector是表示可变大小数组的序列容器。口诀: ** 进出空大小,取首尾**类似动态数组,可做数组相关的练习题。vector 名称;

2024-10-15 10:55:27 266

空空如也

空空如也

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

TA关注的人

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