Fork me on GitHub
摘要: 基本数据结构 除了用STL调用容器来实现基本的数据结构, 在一些特殊情况下(如:对时间、空间作限制;题目的要求比较特别的时候), 我们可以自己模拟数据结构。 以下给出几种常用数据结构的模拟,以及它们的特殊题型模板。 模拟栈 1. 普通栈 // tt表示栈顶 int stk[N], tt = 0; / 阅读全文
posted @ 2020-11-26 10:09 解尼 阅读(212) 评论(0) 推荐(0) 编辑
摘要: 目录 所在位置 搜索与图论 搜索 DFS与BFS 图论 树与图的遍历 拓扑排序 *最短路问题 二分图 导学 在我们遇到的一些问题当中,有些问题我们不能够确切的找出数学模型,即找不出一种直接求解的方法,解决这一类问题,我们一般采用搜索的方法解决。 搜索就是用问题的所有可能去试探,按照一定的顺序、规则, 阅读全文
posted @ 2020-11-10 10:52 解尼 阅读(180) 评论(0) 推荐(0) 编辑
摘要: 当前位置 字符串部分 Trie树 KMP AC自动机 导学 模式串匹配 模式串匹配,就是给定一个需要处理的文本串和一个需要在文本串中搜索的模式串,查询在该文本串中,模式串的有无情况、次数以及位置等。 常见模式匹配算法 朴素模式匹配算法——BF算法 ​ 用指针 i 指向文本串str1的字符str1[i 阅读全文
posted @ 2020-11-06 15:51 解尼 阅读(154) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2020-11-01 12:10 解尼 阅读(6) 评论(0) 推荐(0) 编辑
摘要: 当前位置 字符串部分 Trie树 KMP AC自动机 字符串 Trie树 1.给出n个单词和m个询问,每次询问一个单词,问这个单词是否在单词表中出现过? 答:用map! 2.给出n个单词和m个询问,每次询问一个前缀,问是多少个单词的前缀? 答:用Trie树! 1.1 概念 Trie又称字典树,前缀树 阅读全文
posted @ 2020-10-28 22:56 解尼 阅读(102) 评论(0) 推荐(0) 编辑
摘要: C++的结构体 一、struct的演变 C中的struct不能包含任何函数。因为在面向过程的编程中,数据和数据操作是分开的,struct作为一种数据类型,其中不能定义函数进行操作行为。 struct A { int a; int b; //成员列表 }; 而C++中的struct可以包含成员函数,在 阅读全文
posted @ 2020-10-28 00:18 解尼 阅读(599) 评论(0) 推荐(0) 编辑
摘要: C++中的命名空间 做题的时候经常看见C++中有一行:using namespace std; 不是很明白,就去网上查了一查,写下这篇博文大致解释一下。 1. 命名空间的由来 ​ C++中如果有必须的标识重名了,那么该如何区分它们?为了处理这样的情况,引入namespace的概念,将重名的标识名,分 阅读全文
posted @ 2020-10-26 11:14 解尼 阅读(137) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2020-10-23 00:03 解尼 阅读(14) 评论(0) 推荐(1) 编辑
摘要: 目录 所在位置 入门篇: 算法:C++入门 新手上路,培养写算法的风格与习惯! STL中的基本数据结构与算法 一、C++简单使用 学C++,对竞赛帮助真的很大。 尤其是后面的STL部分,有现成的数据结构与实用的算法可以直接使用。 1.基本语法 1. Hello World!第一个C++程序 #inc 阅读全文
posted @ 2020-10-19 11:12 解尼 阅读(289) 评论(0) 推荐(1) 编辑
摘要: 目录 所在位置 入门篇: 算法:C++入门 新手上路,培养写算法的风格与习惯! STL中的基本数据结构与算法 STL STL(Standard Template Library)是C++的标准模板库,很多竞赛常用的数据结构、算法在STL中都有,熟练掌握能极大简化编程。 一、STL容器 STL的容器分 阅读全文
posted @ 2020-10-15 08:58 解尼 阅读(828) 评论(0) 推荐(1) 编辑
摘要: 目录 所在位置 入门篇: 算法:C++入门 新手上路,培养写算法的风格与习惯! STL中的基本数据结构与算法 一、 命名 良好的命名风格与习惯,可以让我们形成肌肉记忆,解题也更加得心应手。 1. 非题干的变量 做过一些算法题的同学,可以发现很多题目中一些非题干的变量都是雷同的. 举个简单的例子:T个 阅读全文
posted @ 2020-10-14 10:57 解尼 阅读(133) 评论(0) 推荐(2) 编辑
摘要: 绪论 1.分类 1.1 逻辑结构 Ⅰ 线性结构 ① 有且只有一个根结点; ② 每个结点最多只有一个前驱; ③ 也最多只有一个后继; 线性结构指的是数据元素之间存在着“一对一”线性关系的数据结构 是逻辑上一维,不要求内存空间上顺序 ​ 线性表:(采用顺序表或链表形式) ​ 栈:顺序栈<—>链栈 ​ 队 阅读全文
posted @ 2019-10-09 10:31 解尼 阅读(322) 评论(0) 推荐(1) 编辑
摘要: 堆栈和队列 一、栈 1.定义 ​ 栈是一种满足后进先出的数据结构;例:死胡同 允许进行插入、删除操作的一端称为栈顶 top 表的另一端称为栈底 当栈中没有数据元素时,称为空栈 栈的插入操作通常称为进栈或入栈 栈的删除操作通常称为退栈或出栈 void InitStack(SqStack *&s); v 阅读全文
posted @ 2019-10-09 10:30 解尼 阅读(669) 评论(0) 推荐(1) 编辑
摘要: 线性表的链式存储 一、线性表的链式结构分类 1、单链表 Link 1.建立单链表 引用的用处实际上就是使传入变量的本身可以被修改。 ①传入引用型指针变量L , 数组a, 长度n ②定义一个指向结构体的指针变量s。 ③初始化空链表L; ④循环: 1.为指针s分配新的结点,并赋予数组的对应值, 2.将s 阅读全文
posted @ 2019-10-09 10:28 解尼 阅读(251) 评论(0) 推荐(1) 编辑
摘要: 理清堆、栈、堆栈在操作系统中的概念 阅读全文
posted @ 2019-10-09 10:21 解尼 阅读(450) 评论(0) 推荐(1) 编辑