自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 洛谷 P5318 【深基18.例3】查找文献

目前小 K 已经打开了编号为 1 的一篇文章,请帮助小 K 设计一种方法,使小 K 可以不重复、不遗漏的看完所有他能看到的文章。共 m+1m+1 行,第 1 行为 2 个数,nn 和 mm,分别表示一共有 n(n≤105)n(n≤105) 篇文章(编号为 1 到 nn)以及m(m≤106)m(m≤106) 条参考文献引用关系。- 这是一个通用的头文件,包含了 C++ 标准库中的所有常用头文件(在实际使用中不推荐,因为它会增加编译时间和可能的依赖冲突)。提供了更高效的随机访问和更简洁的内存管理。

2024-09-15 21:17:07 981

原创 【C++】std::forward_list

是 C++ 标准库中的一个单向链表容器。与std::list相比,只允许单向遍历,即只能从前往后访问元素。它的实现比std::list更轻量,因此在内存和性能方面通常更优,但缺少双向访问的能力。

2024-09-08 11:27:17 525

原创 【C++】std::list

std::list是 C++ 标准库中的一个双向链表容器,它是顺序容器中的一种。与其他顺序容器如和std::deque不同,std::list在插入和删除操作上具有显著的优势,特别是在容器的中间部分。

2024-09-08 11:26:12 569

原创 单源最短路径 洛谷【P4779】

给定一个 nn 个点,mm 条有向边的带非负权图,请你计算从 ss 出发,到每个点的距离。数据保证你能从 ss 出发到任意点。第一行为三个正整数 n,m,sn,m,s。 第二行起 mm 行,每行三个非负整数 ui,vi,wiui​,vi​,wi​,表示从 uiui​ 到 vivi​ 有一条权值为 wiwi​ 的有向边。输出一行 nn 个空格分隔的非负整数,表示 ss 到每个点的距离。输入 #14 6 11 2 22 3 22 4 11 3 53 4 31 4 4输出 #10 2 4 3

2024-09-07 22:47:34 867

原创 【C++】 std::deque

std::deque是 C++ 标准库中的一个双端队列容器。它允许在两端进行高效的插入和删除操作,适用于需要在序列的两端进行频繁操作的场景。

2024-09-07 16:49:44 294

原创 【C++】std::vector

是一个非常常用的容器,主要用于存储和管理元素的集合,并且支持高效的随机访问和动态调整大小。是 C++ 标准库中的一个动态数组容器,它提供了一个可以动态调整大小的数组。方法会在末尾添加元素,新增的元素会被初始化为。方法会将多余的元素移除,以使大小变为 10。的当前大小已经大于等于 10,的大小调整为 10。的当前大小小于 10,

2024-09-07 16:47:59 434

原创 【C++】容器

在 C++ 中,容器是用来存储和管理一组对象的类模板。标准模板库(STL)提供了多种容器,每种容器都有其特定的用途和特性。

2024-09-07 16:44:17 351

原创 【C++】迭代器

代码实例: 代码分析(1)、头文件引入: 模板函数: 函数:输出:注意:在实际运行时,第二个示例需要在输入完数据后按回车键,以便 完成数据读取。(2)、在使用 函数对输入的整数进行排序时,需要按照以下步骤在键盘上操作以输入数据并查看排序结果:运行程序: 首先编译并运行程序。这将启动程序并等待你的输入。输入数据:结束输入:查看排序结果(再按enter键):

2024-09-07 13:50:15 323

原创 【C++】STL程序实例

代码中包含了几个标准库头文件,用于实现不同的功能。

2024-09-06 22:34:11 322

原创 【C++】vector对象名不能当做数组的头指针使用

在 C++ 中,是一个动态数组,它提供了比传统数组更灵活和安全的功能。尽管的数据存储是连续的内存块,但它并不是普通数组,因此它在使用时有一些注意事项,尤其是在与数组头指针相关的操作上。

2024-09-05 21:57:15 383

原创 【C++】vector有关代码

是 C++ 标准库的命名空间前缀。它包含了所有标准库的组件,如。在使用这些标准库功能时,前缀。指明它们属于标准库。

2024-09-05 21:28:58 1173

原创 【C++】auto的解释

auto是 C++ 中的类型推断关键字。它让编译器自动推导变量的类型。使用auto可以使代码更简洁,尤其在处理复杂类型时特别有用。auto提高了代码的灵活性和可读性,特别是在类型复杂或需要保持一致性的情况下。

2024-09-05 21:22:17 186

原创 【C++】::的解析

是 C++ 中的作用域解析运算符(scope resolution operator)。它用于指定某个名字(如类、函数、变量等)所属的作用域或命名空间。的作用是帮助明确区分不同作用域中的名字,避免命名冲突和提高代码的可读性。

2024-09-05 21:17:05 344

原创 【C++】vector<int>

在 C++ 中, 是一个用于存储整数的动态数组,提供了灵活的内存管理和高效的随机访问。它是标准库中的一部分,定义在 头文件中。定义和初始化:添加元素:访问元素:修改元素:删除元素:遍历元素:代码说明:这里 是 中每个元素的副本。 :打印每个元素的值,并在值之间添加空格。

2024-09-03 20:58:04 305

原创 算法题(Floyed)

Floyd给出一张由 n 个点 m 条边组成的无向图。求出所有点对 (i,j) 之间的最短路径。

2024-08-25 23:10:27 174

原创 《数据结构》归并排序算法

是一种有效的排序算法,使用了的策略来将一个大问题分解成更小的子问题,并通过合并这些子问题的解来得到原问题的解。归并排序具有稳定性,适用于各种数据结构。

2024-08-25 18:39:41 925

原创 《数据结构》堆排序算法

end > 0;end--) {// 将最大值移到末尾// 调整剩余部分end > 0;end--)这是一个倒序循环,从数组的最后一个元素开始,逐步向前移动,直到第一个元素。这是为了将堆顶的最大元素(即数组的第一个元素)逐渐移动到当前“未排序”的数组末尾位置。交换堆顶元素(数组的第一个元素,最大值)和当前“未排序”部分的最后一个元素。这将最大值移到已排序部分的末尾。调整堆的剩余部分。交换后,堆的性质可能被破坏,需要通过AdjustDown函数来重新调整剩余部分以维持最大堆的性质。

2024-08-24 20:49:42 509

原创 《数据结构》简单选择排序算法

【代码】《数据结构》简单选择排序算法。

2024-08-24 10:54:57 113

原创 《数据结构》快速排序算法

快速排序的平均时间复杂度为 (O(n \log n)),最坏情况下为 (O(n^2)),但在实践中通常表现良好。实现了快速排序算法中的划分步骤。递归地对基准元素左右两边的子数组进行排序。指针,直到它们相遇,从而完成划分操作。的部分进行划分,使得小于。的元素在左边,大于或等于。的元素在右边,并返回最终。

2024-08-23 21:07:49 167

原创 《数据结构》冒泡排序算法

【代码】《数据结构》冒泡排序算法。

2024-08-23 16:20:46 223

原创 《数据结构》希尔排序算法

是一种改进的插入排序算法,能够提高插入排序的效率。它通过将数组分成若干个子序列,对每个子序列进行插入排序,从而使得数据更加有序。希尔排序的核心思想是通过逐步减少间隔来使得数据元素逐渐接近最终排序状态。

2024-08-22 17:48:41 892

原创 《数据结构》二分插入排序算法

是最大的可能插入位置。通过不断调整这两个边界,最终可以找到合适的插入位置。在代码中我们认为第一个元素为有序列表,从第二个元素开始遍历。5. right<left,将待插入元素插入left位置。1.a[0]--a[3]已经是有序表。用来确定目标插入位置。是最小的可能插入位置,

2024-08-22 14:19:38 297

原创 《数据结构》直接插入排序算法

将数组分为已排序和未排序两个部分,然后逐步将未排序部分的元素插入到已排序部分的正确位置。:从未排序部分取出一个元素,将它插入到已排序部分的合适位置,保持已排序部分的有序状态。:对未排序部分的每个元素重复插入操作,直到所有元素都被插入到已排序部分中。:将第一个元素视为已排序部分,剩下的元素为未排序部分。,因为插入排序是原地排序,不需要额外的存储空间。

2024-08-21 23:49:33 187

原创 《数据结构》拓扑排序算法

拓扑排序(Topological Sorting)是一种对有向无环图(DAG, Directed Acyclic Graph)进行排序的算法,它的目的是将图中的顶点线性排列,使得对于图中的每一条有向边(u, v),顶点u在排序中出现在顶点v之前。

2024-08-21 12:13:33 382

原创 《数据结构》Floyd算法

Floyd算法即为求每一对顶点之间的最短路径,应用“动态规划”思想。图结构*图存储方式为邻接矩阵*1.仅为两点之间的距离(存储矩阵)A(0)B(1)C(2)A(0)05AB12ACB17BA02BCC23CA无穷大CB02.加入中间点AA(0)B(1)C(2)A(0)05AB12ACB(1)7BA02BCC(2)3CA无穷大CBCA+AB=8

2024-08-20 17:57:20 1154

原创 《数据结构》最短路径Dijkstra算法

生长点ABCDEFP(A)=FAD(A)=130P(B)=FBD(B)=24P(C)=FCD(C)=10P(D)=——D(D)=无穷P(E)=——D(D)=无穷CP(A)=FAD(A)=130P(B)=FBD(B)=24P(D)=FCDD(D)=16P(E)=FCED(D)=62DP(A)=FAD(A)=130P(B)=FBD(B)=24P(E)=FCED(D)=62BP(A)=FBAD(A)=80P(E)=FBED(D)=50E。

2024-08-20 10:00:00 1519

原创 水仙花数 C语言

水仙花数是指一个N位正整数(N≥3),它的每个位上的数字的N次幂之和等于它本身。例如:153=13+53+33。本题要求编写程序,计算所有N位水仙花数。

2023-10-25 12:47:32 311

空空如也

空空如也

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

TA关注的人

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