6.7k 6 分钟

题目集总目录 学习指路博客 数据结构学习笔记<9> 散列查找 # 11 - 散列 1 电话聊天狂人 (25 分) 本题链接 一定要做。如果不知道怎么下手,可以看 “小白专场”,将详细给出 C 语言实现的方法 # 思路 散列查找,插入的时候若键值已存在改改操作就好,直接用之前的模板 # 代码 #include <iostream>#include <cmath>#include <utility>using namespace std;const int MaxSize = 100000;typedef int Index;//...
5.6k 5 分钟

# 一、散列表(哈希表) # 1. 概念引出 编译处理中对变量的管理:动态查找问题 利用查找树进行?—— 两个变量名(字符串)比较效率不高 将字符串转换为数字,再处理?—— 即为散列查找的思想 已知的几种查找方法: 顺序查找 O (N) 二分查找(静态查找) O (log2N) 二叉搜索树 O (h) h 为二叉查找树的高度 平衡二叉树 O (log2N) # 问题:如何快速搜索到需要的关键词?若关键词不方便比较怎么办? 查找的本质:<font color=#FF0000> 已知对象找位置 有序的安排对象:全序(完全有序,eg:...
3.4k 3 分钟

题目集总目录 学习指路博客 数据结构学习笔记<8> 排序 # 10 - 排序 4 统计工龄 (20 分) 本题链接 非常简单的练习,想一下用哪种排序效率最高?此题一定要做; ps: 灰常简单,都不想排序了【狗头保命】 # 代码 #include <iostream>#include <cstdio>using namespace std;typedef long long ll;#define div 1000000007const int maxn = 100005;const int inf = 0x3f3f3f;int N, x;int...
4.4k 4 分钟

题目集总目录 学习指路博客 数据结构学习笔记<8> 排序、归并排序循环实现(存用) # 09 - 排序 1 排序 (25 分) 本题链接 一个实验各种排序算法的平台,好好玩哈,然后去论坛晒结果 —— 实在不行可以看给出的参考代码。这是基本训练,一定要做 本题测试的各种排序算法的结果都在博客数据结构学习笔记<8> 排序里边写了,这里仅给出插入排序的代码 # 代码 #include <iostream>#include <cstdio>using namespace std;typedef long long ll;const int maxn =...
1.3k 1 分钟

递归的归并排序是很占空间和时间的,而非递归算法就不一样了,额外空间复杂度最少为 O (N)。 陈越姥姥的慕课里就讲得很清楚~ 戳这儿 这里就直接上代码 + 注释了 #include <iostream>#include <cstdio>#include <queue>using namespace std;typedef long long ll;const int maxn = 100005;const int inf = 0x3f3f3f;int N;ll a[maxn];void swap(ll &a, ll...
7.1k 6 分钟

# 一、拓扑排序 # 1. 概念定义 # AOV 网络 例如,假定一个计算机专业的学生必须完成图 3-4 所列出的全部课程。从图中可以清楚地看出各课程之间的先修和后续的关系。如课程 C5 的先修课为 C2,后续课程为 C4 和 C6。通常,我们把这种顶点表示活动、边表示活动间先后关系的有向图称做顶点活动网 (Activity On Vertex network),简称 AOV 网。 # 拓扑序、DAG 若图中从 V 到 W 有一条有向路径,则 V 一定排在 W 之前。满足该条件的顶点序列称为一个拓扑序 获得一个拓扑序的过程就是拓扑排序 AOV...
4.4k 4 分钟

08-图7 公路村村通 (30分) 题目大意 代码 测试点 08-图8 How Long Does It Take (25分) 题目大意 思路 代码 测试点 08-图9 关键活动 (30分) 题目大意 代码 测试点 (目录) 题目集总目录 学习指路博客 解决最小生成树问题 (Kruskal 算法 & Prim 算法)、数据结构学习笔记<8> 排序 # 08 - 图 7 公路村村通 (30 分) 本题链接 非常直白的最小生成树问题,但编程量略大,选做 —— 有时间就写写; #...
5.2k 5 分钟

题目集总目录 学习指路博客 图论 # 07 - 图 4 哈利・波特的考试 (25 分) 本题链接 是很基本的算法应用,一定要做。如果不会,那么看看小白专场,会详细介绍 C 语言的实现方法 # 题目大意 给出每两个动物之间所需魔咒长度 哈利・波特最后应该带去考场的动物要使得最难变的动物所需总魔咒长度最小。 输出哈利・波特最后应该带去考场的动物的编号、以及最长的变形魔咒的长度 # 思路 用 Floyd 算法得出最短路矩阵 dist (dist [i][j] 表示 i 到 j 所需最短长度,在每行里找最难变 (即 dist [i][j] 最大) 的元素,在这些元素中找最小的,输出最小值的下标 i...
3.1k 3 分钟

题目集总目录 学习指路博客 图 # 06 - 图 1 列出连通集 (25 分) 本题链接 非常基础的训练,一定要做 # 题目大意 输出图中所有连通集。先输出 DFS 的结果,再输出 BFS 的结果。 # 代码 #include <iostream>#include <cstdio>#include <queue>using namespace std;const int maxn = 11;int N,E,x,y;bool visited[maxn];int...
3.6k 3 分钟

题目集总目录 学习指路博客 堆与哈夫曼树与并查集 # 05 - 树 7 堆中的路径 (25 分) 本题链接 将在 “小白专场” 中介绍 C 语言的实现方法,是建立最小堆的基本操作训练,一定要做 # 题目大意 给出最小堆的插入序列,和下标序列,每个下标 i 输出 Data [i] 到根结点路径上的值。 # 代码 #include <iostream>using namespace std;const int mindata = -10005;const int maxsize = 10000;typedef struct HeapStruct...