自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 图论入门:从基础概念到经典算法

本文将从图的基本概念出发,介绍图的存储方式、几种经典的最短路算法(Floyd、Dijkstra、Bellman-Ford和SPFA),以及树的基本概念和遍历方法。图论是计算机科学中的重要工具,掌握图的基本概念、存储方式和经典算法是解决图论问题的基础。本文介绍了图的存储方法、最短路算法、树的基本概念和遍历方法,以及树形DP的初步应用。图(Graph)是由若干顶点(Vertex)和连接顶点的边(Edge)构成的结构,用于描述事物之间的关系。树的重心是指删除该节点后,图中所有连通块的最大尺寸最小的节点。

2025-02-19 15:39:21 413

原创 动态规划初步:线性DP与背包DP的入门指南

状态转移方程:`f(i, j) = max(f(i - 1, j - 1), f(i - 1, j)) + a(i, j)`,其中`a(i, j)`是第`i`行第`j`列的数字。- 如果选择第`i`个物品:`dp[i][j] = dp[i - 1][j - w[i]] + v[i]`(前提是`j >= w[i]`)- 状态定义:设`dp[i][j]`表示前`i`个物品在容量为`j`的背包中能获得的最大价值。-状态定义:设`f(i, j)`表示从顶部走到第`i`行第`j`列的最大路径和。

2025-02-16 15:45:45 537

原创 深度优先搜索与广度优先搜索

深度优先搜索和广度优先搜索是解决许多问题的强大工具。通过全排列问题和走迷宫问题,我们展示了DFS和BFS的基本应用。希望本文能帮助你更好地理解这两种搜索算法,并在实际问题中灵活运用。

2025-02-13 15:31:29 792

原创 基础数论知识

给定一个模数 m,如果两个整数 a 和 b 满足 a - b 能被 m 整除,那么我们称 a 和 b 模 m 同余,记作 a ≡ b (mod m)。根据费马小定理,如果 a 和 m 互质,那么 a^(m-1) ≡ 1 (mod m),因此 a^(m-2) (mod m) 就是 a 的乘法逆元。给定模 m 和整数 a(满足 gcd(a, m) = 1),称整数 b 为 a 关于模 m 的乘法逆元,如果满足 a × b ≡ 1 (mod m)。其中 x 就是 a 在模 m 下的乘法逆元(经过适当取模处理)。

2025-02-10 17:14:37 720

原创 数据结构的魅力:栈、队列、优先队列与ST表

想象一下,你把书一本一本地叠放在桌面上,最后放上去的书总是最先被拿走,这就是栈的典型应用场景。在C++中,栈通过`std::stack`实现,它的操作非常简单,但功能强大。在C++中,优先队列通过std::priority_queue`实现,默认情况下它是一个最大堆,即队首元素总是最大的。例如,在一个任务调度系统中,任务可以根据其紧急程度被分配不同的优先级,优先队列可以确保高优先级的任务先被处理。例如,在一个多任务操作系统中,任务会按照到达的顺序排队等待处理,队列就是实现这种调度的理想工具。

2025-02-07 15:05:12 293

原创 Day2: 二分查找与二分答案

2. 二分答案:假设当前二分的中间值为mid,计算以mid为小段长度时,能切割出的小段木头数量cnt。如果cnt >= k,说明mid是一个合法的长度,尝试更大的长度;2. 二分答案:假设当前二分的中间值为mid,尝试删除点,使得剩下的点之间的距离最小值为mid。如果删除的点数不超过m,说明mid是一个合法的最小值,尝试更大的值;当然,我们希望得到的小段木头越长越好,请求出x的最大值。二分查找的核心思想是利用数列的单调性,每次通过比较中间值与目标值的大小关系,将查找范围缩小一半,从而快速定位目标值的位置。

2025-01-26 15:27:12 736

原创 day1 学习记录总结(c++语言中的拓展语法和数据结构函数)

list是一种双向链表,支持在任意位置插入和删除元素,但不支持随机访问。• push_front(value)和pop_front():在头部插入和删除元素,时间复杂度为O(1)。• push_front(value)和pop_front():在头部插入和删除元素,时间复杂度为O(1)。• push_back(value)和pop_back():在尾部插入和删除元素,时间复杂度为O(1)。• push_back(value)和pop_back():在尾部插入和删除元素,时间复杂度为O(1)。

2025-01-23 22:45:36 374

原创 【无标题】

作为一名准大一新生,下一站c语言是我不懈的目标。每天花6个小时学习有关内容。我打算学好c语言与c++字节和阿里是我的目标。

2024-07-13 11:47:09 136

空空如也

空空如也

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

TA关注的人

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