- 博客(20)
- 收藏
- 关注
原创 暑期总结 2022.7.19 模拟堆+优先队列
1.模拟堆的各个操作主要是由down(),up(),以及重新定义的堆的交换swap()组成,因此这三个函数是代码的核心。2.为了完成删除第K个插入的元素,修改第K个插入的元素等操作,我们要加入两个数组。2.hp[]下标堆中的下标值代表第几个插入的点。1.ph[]下标第K个插入的点值在堆中的下标。注这两个数组互为逆数组,用他们重新定义堆中的交换。...
2022-07-20 00:15:36
306
原创 暑期总结 2022.7.18 trie树+堆
是对trie树的运用,不过在这里每个节点存储的不再是字母,而是0和1,然后查找出每一个数异或后最大值所对应的元素,最后每一个元素进行比较,输出最大的即可。2.查找按照字母,一层一层向下寻找,需注意的是树的最后一个字母都要做标记,这样也是为查找做准备。三、一个模板题,是对dfs的一个复习,就是把全排列中的三个数换成了八个数,是对模板的复习。2.堆的存储用一维数组进行存储,某一点x的左节点存储在2x处,右节点存储在2x+1处。3.作用删除最小值、删除任意一个数、求最小值、插入任意一个数、修改任意一个数。...
2022-07-18 22:42:46
319
原创 2022.7.16 练习题+优先队列
1.含义优先队列同队列基本操作相同,但是队列内的元素是按照加入队列的顺序排序,但是优先队列可以按照单增、单减或自定义顺序排序。3.操作同队列的插入(push)、删除(pop)、判断是否为空(empty())等操作相同。2.头文件#include字符串哈希----模板题(要多复习,不然会忘记细节)此题需要了解一个知识点———优先队列。用数学方法中的按行按列展开即可完成。2.计算四阶行列式的值。......
2022-07-16 23:13:29
280
原创 暑期总结2022.7.15 练习题
当元素为a时,让其入栈,当元素为b时,和栈中的元素匹配,然后最后判断以下栈中的元素是否匹配完成,即看一下指向栈顶的指针tt是否为零即可。1.如果队列头部元素和要出队的元素是相同的,即证明其遵守了规则,否则则证明其没有遵守规则。这道题最重要的是要明确什么时候出栈,当当前栈顶的数比之后任意一个数都大时,就让该数出栈。2.为了方便,需要把出队的成员的名字有map标记。......
2022-07-15 22:35:20
155
原创 暑期总结2022.7.14 bfs+队列
1.队列是数据结构的一种,遵循“先进先出”的原则,和栈一样,既可以用数组模拟,也可以用STL的函数来完成,但是相对来说用数组模拟会更快一些,但用函数会更方便一些,各有利弊。2.bfs可以处理一些最短路径的问题,但是也仅限于任意搜索的两点之间距离相等的情况,因此具有局限性。3.同dfs做对比,可以看出dfs是不断向深处搜索,而bfs则是横向拓展。1.bfs搜索和dfs相同的是他们在时间和效率上并不占优势。以下是经典题目的代码(这里的队列是用STL函数来完成的)2.广度优先搜索(bfs)...
2022-07-14 22:20:32
159
原创 2022.7.13 习题
1.小猫爬山是一道简单的dfs搜索题目,但是如果对其排序,然后用两个指针分别指向头和尾来做,同样也可以以AC,以下是第二种做法的代码:2.单调栈对于单调栈类的题目,大致一共有四种模式: 1.在数列中每个数左边第一个比该数大的数。 2.在数列中每个数左边第一个比该数小的数。 3.在数列中每个数右边第一个比该数大的数。 4.在数列中每个数右边第一个比该数小的数。基本的代码类型都大同小异,以下以第3种为例给出代码:3.蓝桥杯 Description - NC
2022-07-13 22:46:53
86
原创 2022.7.12 练习+dfs、栈习题
1.登录—专业IT笔试面试备考平台_牛客网拼数:是一道贪心题目,需要按每一位从左到右数值的大小进行排序,可以用结构体存入数据,然后写一个cmp()函数,用sort()函数进行排序,最后输出结果即可。 2.登录—专业IT笔试面试备考平台_牛客网 关键在于求出每个数的每一位,最后相加,然后循环至和为个位即可。3.解密回文(栈)一个很简单的题目,主要是理解栈的思想,另外用两个指针从头和尾循环也可以得出答案。 4. 同样是栈,栈内存放的元素都是单调的元素,因此被称为单调栈。5....
2022-07-12 23:17:33
87
原创 2022.7.10 练习题+训练赛
一、练习题1.登录—专业IT笔试面试备考平台_牛客网是一道模拟题,较简单,需要细心,否则会漏情况 2.登录—专业IT笔试面试备考平台_牛客网 可以用尺取法尺取法:用两个指针,使右指针不断右移,当满足条件,将左指针右移,如此循环,以求得满足情况的最小值。这样做比直接枚举更高效。3.登录—专业IT笔试面试备考平台_牛客网 同样用到指针来进行优化枚举,否则会超时。4.第二次排位赛...
2022-07-11 23:06:23
88
原创 2022.7.11 dfs深度优先搜索+数组模拟栈
一、深度优先搜索1.理解 深度优先搜索,是一种自上而下的搜索方式,蕴含着递归的思想,在模板题中,需要注意的是: 1.注意递归的结束标志,从第0位开始搜索,在位数u==n时代表着结束,而不是u==n-1时结束。 2.在搜索完一位后,递归搜索下一位时,要对数组进行还原,还原到以前的样子,在排列中即为book[i]要重新定义为false,代表没有用过该数字。 3.含义: book[i]: 标记使用过的数 a[i]:存储排序结果模板如下:2.n-皇后问题思路和上题类似
2022-07-11 22:54:01
197
原创 暑期总结2022.7.9 练习+模板复习
1.离散化离散化适用于范围很大,但是数值的个数很少,这种情况下可以考虑离散化,离散化需要注意的是:a.如果有重复元素,需要去重,利用unique函数进行去重。b.离散化后的值实际上就是下标,可以用到lower_bound和upper_bound来求出下标。模板题:2.kmp模板题用于字符串的匹配,是一种非常快的匹配方式,代码如下:3.哈希+kmp+string训练赛...
2022-07-09 23:05:44
92
原创 暑期总结2022.7.8 习题+字符串哈希
1.umi的函数 - 洛谷2.【深基6.例6】文字处理软件 - 洛谷 3.A-B 数对 - 洛谷4.眼红的Medusa - 洛谷5.登录—专业IT笔试面试备考平台_牛客网 6.模板题复习 字符串哈希
2022-07-08 22:57:42
160
原创 2022.7.7 拉链法,开放寻址法,string中常用函数总结
一、拉链法需要注意的是,拉链法中定义的几个数组分别为 h[N],e[N],ne[N],idx,他们所存放的值以及其下标代表的含义:h[N]: 下标为哈希后的值,所存放的值是指针,指向拉链的第一个元素,也就是拉链后第一个元素的下标。e[N]:所存放的值为插入的元素的值。ne[N]:所存放的值为下一个元素的下标。idx:作为一个索引,来帮助实现链表。模板题:模拟散链表代码如下:二、开放寻址法同样需要注意的是h[N]的含义以及它的原理。原理:同样以取模的形式进行哈希,但是由于会发生碰撞,在这里处理碰撞的方式
2022-07-07 22:54:32
367
原创 暑期总结 2022.7.5
一、.vector容器1.头文件 2.定义3.容量与大小1.empty() 判断是否为空。2.size() 返回容器的大小。3.resize(int num) 控制容器的长度,将容器变大或缩小。4.元素的添加和删除5.clear() 删除所有元素4.数据存取1.a1.at(int x) 和 a1[x] 是等价的,都可以标记位置。2.a1.front() 容器中第一个元素。3.a1.back() 容器中最后一个元素。5.互换容器swap a1.swap(a2);二、高精度模板题复习1.
2022-07-05 23:36:42
105
原创 暑期总结2022.7.4
1.习题https://ac.nowcoder.com/acm/problem/50937 2.string函数的复制以及查找的函数find()函数3.高精度 模板题
2022-07-04 22:10:49
117
原创 暑期总结2022.7.3 单链表
1.单链表 一种数据结构,通常较为普遍运用的是用两个数组模拟链表,这是因为申请动态存储空间是十分费时,在题目中容易超时,而模拟链表速度更快。模板题:活动 - AcWing2.昨日补题 3.第一次排位赛...
2022-07-03 23:08:11
116
原创 暑期总结2022.7.2 习题
1.练习题牛客激光炸弹知识点:前缀和矩阵 2.中位数图 3.校门外的树 4.铺地毯 5.gk的字符串 6.二分训练赛
2022-07-02 22:51:42
145
原创 暑期总结2022.7.1 cmp函数的编写,逆序对,map函数
一、sort()函数中cmp函数的编写1.在一般的排序中,不需要对cmp函数进行编写,sort()函数在一开始会默认为升序排列。2.在对结构体类型的数据进行排序时,需要编写cmp()函数。在实际的做题当中,虽然没有cmp函数也可以完成相应的排序,但是利用函数将会更加方便,简洁。3.cmp函数的返回值类型为bool类型。4.例题[NOIP2007 普及组] 奖学金 - 洛谷二、逆序对1.逆序对的数量的求法可以从归并排序中得到,归并排序本身的思想就是先进行分段然后对好的段进行排序合并。归并排序本身无返回值
2022-07-01 22:01:42
449
原创 暑期总结2022.6.30 双指针算法
一、双指针算法双指针算法的主要作用是将暴力枚举中的两层for循环的O(n^2)的时间复杂度降低到O(n),一般在做题中可以从暴力做法去思考,然后去进行优化。(降低时间复杂度是双指针算法的核心,需要重点理解)。注释:双指针在做题时容易把i和j两个指针所代表的含义以及指针的前后位置搞混,从而造成思路混乱,需要注意。模板题目最大连续不重复子序列活动 - AcWing两个指针指向同一段序列判断子序列活动 - AcWing两个指针指向不同序列数组元素的目标和 活动 - AcWing前后指针练习题双指
2022-06-30 22:58:18
154
原创 暑期每日总结2022.6.29
一、模板题1.差分及差分矩阵2.二分最初的二分可以用于数组中的数字的查找,前提是要对数组进行排序。除去查找外,二分还可以用于二分答案。 代码:二、 练习题1.[NOIP2007 普及组] 纪念品分组 - 洛谷2.眼红的Medusa - 洛谷3.Moo - 洛谷4.分治训练赛...
2022-06-29 19:17:05
225
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人