自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 #P1371. [CSP-J 2024] 接龙

预处理阶段记录每个位置 p 中每个值出现的所有索引,便于后续快速查询。子序列检查检查是否存在从 start_val 到 end_val 的子序列,满足长度限制条件。动态规划处理对于步数 r > 1 的情况,通过动态规划逐步扩展可能的路径,判断是否能够到达目标值 c。查询处理根据查询的 r 和 c 值,分别处理单步和多步情况,输出是否可能的判定结果。

2025-07-17 15:08:56 1812

原创 动态规划(DP)

动态规划(Dynamic Programming,DP)是一种解决复杂问题的算法思想,通过将问题分解为子问题并存储子问题的解(避免重复计算),从而高效解决问题。动态规划通常用于优化问题,如最短路径、最长公共子序列等。

2025-07-17 14:45:31 1502

原创 算法与数据结构

分治思想,平均时间复杂度 O(n log n)。

2025-07-17 14:34:37 317

原创 floyed最短路算法

算法的时间复杂度为 O(n³),适用于稠密图或顶点数较少的图。对于每个中间顶点 k,检查是否存在从 i 到 j 的更短路径,即 dist[i][k] + dist[k][j] < dist[i][j]。若存在,则更新 dist[i][j]。初始化一个 n×n 的距离矩阵 dist,其中 dist[i][j] 表示顶点 i 到顶点 j 的直接距离。若 i 和 j 不相邻,则设为无穷大(INF),dist[i][i] 设为 0。在实际应用中,需确保图中不存在负权环,或提前检测负权环的存在。

2025-07-17 14:16:42 237

原创 dfs(深搜)与bfs(广搜)算法

DFS (深度优先搜索)与 BFS (广度优先搜索)是两种常用的图遍历算法,主要区别在于搜索顺序和适用场景。

2025-07-15 18:24:06 360

原创 Algorithm

算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述机制。也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。如果一个算法有缺陷,或不适合于某个问题,执行这个算法将不会解决这个问题。不同的算法可能用不同的时间,空间或效率来完成同样的任务。一个算法的优劣可以用与来衡量。算法中的指令描述的是一个计算,当其运行时能从一个初始状态和(可能为空的)初始输入开始,经过一系列有限而清晰定义的状态,最终产生输出并停止于一个。

2025-07-15 18:20:19 277

原创 c++语言介绍

C++ 是一种通用编程语言,由 ‌‌ 于 1983 年在贝尔实验室开发,作为 C 语言的扩展。它支持‌多范式编程‌(面向对象、过程化、泛型、函数式),以其高性能、灵活性和对系统资源的直接控制能力闻名,广泛应用于操作系统、游戏引擎、高性能计算等领域。C++ 是高性能计算领域的基石语言,平衡了底层控制和高级抽象。尽管 Rust 等新语言在安全性上有所超越,但 C++ 凭借其成熟的生态和性能优势,仍在关键领域占据不可替代的地位。学习 C++ 可深刻理解计算机系统原理,并为掌握其他语言奠定基础。

2025-07-15 14:24:32 1605

原创 dijkstra算法

Dijkstra算法是一种用于在带权图中找到单个源点到所有其他点的最短路径的算法。它属于贪心算法的一种,适用于有非负权重的图。在C++中实现Dijkstra算法通常使用优先队列(如C++ STL中的。这段代码首先定义了一个图的邻接表表示,然后实现了Dijkstra算法。使用优先队列(小顶堆)来优化选择最短路径的顶点的过程。最后,主函数中构建了一个图,并调用。)来优化性能,因为它可以保证每次选取当前最短路径的顶点。函数计算从顶点0到所有其他顶点的最短路径,并打印结果。

2025-07-15 14:08:40 209

原创 spfa算法

SPFA(Shortest Path Faster Algorithm)是一种用来解决单源最短路径问题的算法,它是Bellman-Ford算法的优化版本。SPFA算法通过限制队列中的节点被加入的次数,避免了Bellman-Ford算法在某些情况下可能出现的所有边都被多次松弛的问题,从而提高了算法的效率。

2025-07-15 14:02:56 301

原创 c++高级知识

C++支持Windows、UNIX、MacOS等多平台编译,需掌握不同系统的API差异及兼容性处理。C++支持经典面向对象编程(OOP),包含继承、多态、抽象类等特性。高级阶段需掌握类设计模式,如单例模式、工厂模式等,以及如何通过抽象类实现代码复用。并发编程涉及线程同步机制(如互斥锁)、消息队列等,适用于高负载系统开发。关键字自动类型推导简化编码,但需注意其局限性(如无法推导非常量表达式)。模板(template)是C++核心特性,支持类型无关的函数/类定义。C++11引入智能指针(

2025-07-15 13:53:46 240

原创 C++关键字总结

在C++中,关键字是具有特殊含义的单词,它们被C++语言赋予了特定的语法意义。了解和正确使用这些关键字对于编写有效和正确的C++程序至关重要。

2025-07-15 13:38:18 388

原创 #P1395. [NOIP 2016 普及组] 魔法阵

六十年一次的魔法战争就要开始了,大魔法师准备从附近的魔法场中汲取魔法能量。大魔法师有 m 个魔法物品,编号分别为1,2,…,m。每个物品具有一个魔法值,我们用Xi​ 表示编号为 i 的物品的魔法值。每个魔法值 Xi​ 是不超过 n 的正整数,可能有多个物品的魔法值相同。

2025-07-15 13:24:02 439

原创 RE出现的几个原因

【代码】RE出现的几个原因。

2025-07-15 12:55:12 340

原创 STL---队列

【输入】 第一行输入先输入n表示客户数量 第二行输入每个客户的类型 第三行输入每个客户的办理时间,数据之间用用空格隔开 【输出】 第一行输出A类客户的平均办理时间 第二行输出B类客户的平均办理时间 第三行输出C类客户的平均办理时间。一:队列的概念 队列(queue)是一种特殊的线性表,只允许在表的头部(队首)进行删除操作,只允许在表 的尾部(队尾)进行插入操作,是一种操作受限制的线性表。队列的数据元素又称为队列元素,在队列 中插入一个队列元素称为入队操作,从队列中删除一个队列元素称为出队操作。

2025-07-15 12:45:19 420

原创 STL----栈

栈(stack)又名堆栈,是一种操作受限的线性表,只能在表的一端进行插入和删除操作,这一端 被称为栈顶,相对的,另一端被称为栈底。代码中经常会出现多对括号互相嵌套的结构,小明发现只要匹配能够完成,无论多么复杂的嵌套结 构程序都能正确运行,而只要有一个地方出错,程序也能立马报错,小明猜想这其中一定有一套检验机 制在,他想自己尝试完成这套检验机制。要求:第一行输出栈中元素的个数(使用size()函数) 进行一次出栈操作,第二行输出栈中元素的个数 第三行输出栈中的元素,以空格隔开。

2025-07-15 12:44:29 412

原创 #P1142. [NOIP 2016 普及组] 海港

小 K 是一个海港的海关工作人员,每天都有许多船只到达海港,船上通常有很多来自不同国家的乘客。小 K 对这些到达海港的船只非常感兴趣,他按照时间记录下了到达海港的每一艘船只情况;对于第 i 艘到达的船,他记录了这艘船到达的时间ti​ (单位:秒),船上的乘客数 ki​,以及每名乘客的国籍 xi,1​,xi,2​,…,xi,k​。小K统计了 n 艘船的信息,希望你帮忙计算出以每一艘船到达时间为止的 2424 小时(2424 小时 =86400=86400 秒)内所有乘船到达的乘客来自多少个不同的国家。

2025-07-15 12:42:36 573

原创 #P1397. [NOIP 2014 普及组] 珠心算测验

珠心算是一种通过在脑中模拟算盘变化来完成快速运算的一种计算技术。珠心算训练,既能够开发智力,又能够为日常生活带来很多便利,因而在很多学校得到普及。某学校的珠心算老师采用一种快速考察珠心算加法能力的测验方法。他随机生成一个正整数集合,集合中的数各不相同,然后要求学生回答:其中有多少个数,恰好等于集合中另外两个(不同的)数之和?最近老师出了一些测验题,请你帮忙求出答案。

2025-07-15 12:34:32 187

原创 #P1400. [NOIP 2014 普及组] 子矩阵

其分值为 ∣6−5∣+∣5−6∣+∣7−5∣+∣5−6∣+∣6−7∣+∣5−5∣+∣6−6∣=6∣6−5∣+∣5−6∣+∣7−5∣+∣5−6∣+∣6−7∣+∣5−5∣+∣6−6∣=6。例如,下面图中选取第 2,42,4 行和第 2,4,52,4,5 列交叉位置的元素得到一个 2×32×3 的子矩阵如下所示。子矩阵:从一个矩阵当中选取某些行和某些列交叉位置所组成的新矩阵(保持行与列的相对顺序)被称为原矩阵的一个子矩阵。

2025-07-15 09:45:02 365

空空如也

空空如也

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

TA关注的人

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