- 博客(16)
- 收藏
- 关注
原创 图论算法的大家庭——c++中的图论算法
图论算法是处理图结构问题的核心工具,广泛应用于路径规划、社交网络分析、计算机网络等领域。以下从基础概念、经典算法及其代码实现展开详细介绍,涵盖 DFS、BFS、最短路径、最小生成树等核心内容,并附 C++ 代码示例及注释。
2025-06-30 17:11:09
417
原创 搜索的钇铥铥小知识——c++中的各列排序算法
定义:搜索算法是指在特定数据结构(如数组、树、图等)中查找目标元素或满足条件的解的方法。核心目标:提高搜索效率(减少时间复杂度),降低空间消耗。分类基础搜索:线性搜索和二分搜索是其他算法的基石,需熟练掌握其适用条件。树与图搜索:BFS 和 DFS 是图论的核心算法,广泛用于路径搜索和遍历问题。高级搜索:A*、遗传算法等适用于复杂优化问题,需结合问题特性设计启发式或适应度函数。优化方向:通过数据结构优化(如优先队列、哈希表)或剪枝策略(如分支限界)提升搜索效率。
2025-06-30 15:34:39
1175
原创 排序的学问——c++各类排序算法介绍及代码实现
适用于小规模数据(n<10³),实现简单但效率较低。cpp 特点: 稳定排序(不改变相同元素相对顺序)。 最好情况 O (n)(已有序时可提前终止),最坏 / 平均 O (n²)。 竞赛场景:几乎不用,仅作为算法入门练习。 2. 插入排序(Insertion Sort) 原理:将元素逐个插入已排序区间,类似扑克牌整理。 代码示例: cpp 特点: 稳定排序。 最好情况 O (n),最坏 / 平均 O (n²)。 优化:用二分查找确定插入位
2025-06-29 22:21:17
654
原创 迭代的兄弟——c++中的递归
递归是一种强大的编程思想,能简洁地解决具有递归性质的问题,但需注意栈溢出和性能问题。推荐递归:问题具有天然递归结构(如树遍历)、代码可读性优先。推荐迭代:对性能要求高、递归深度可能过大的场景。
2025-06-26 18:11:55
494
原创 核桃oj题解之P2274数组交换1
是 C++ 中用于优化输入输出效率的关键语句,其作用、原理及使用方法如下:解除 C++ 标准输入输出流(cin/cout)与 C 标准输入输出函数(scanf/printf)的同步,减少输入输出时的额外开销,提升程序运行速度。默认情况下,cin 与 cout 绑定(cin.tie(&cout)),即每次 cin 输入前会自动刷新 cout 的缓冲区。//解除 C++ 标准输入输出流(cin/cout)与 C 标准输入输出函数(scanf/printf)的同步。//解绑cin与cout。
2025-06-25 19:31:43
288
原创 核桃oj题解之P1874-[CSP-J 2021] 分糖果
结果判定: 当 first 处于区间 [L, R] 内时,意味着存在余数为 n - 1 的情况,此时直接输出 n - 1。若 first 超出了区间范围,也就是大于 R,那就返回区间右端点 R 对 n 取模的结果,这就是在该区间内能够得到的最大余数。此时,最大余数理论值为 4。通过计算得出 first = 9(因为 9 % 5 == 4),而 9 在区间 [7, 10] 内,所以输出结果为 4。这个程序主要解决的是在给定的区间 [L, R] 里,找出一个数 x,使得 x % n 的值最大。
2025-06-24 16:58:40
312
原创 核桃oj P2323 第k大和第k小的数·
先用for循环输入数组,再用sort(a+1, a+n+1, greater<int>());降序排列(从大到小排列),cout<<a<<" "输出第k大的数加空格,再用sort(a+1,a+n+1);升序排列(从小到大排列),cout<<a[k]输出第k小的数,最后别忘了return 0!求第k大和第k小的数。
2025-06-22 14:29:54
124
原创 核桃oj P3649题解(求赞)
不写两个for循环,一边输出一边对sum进行累加,完美避免重复计算的问题,同时用三目运算符减少代码行数。求两条对角线上所有元素之和(不重复)P3649-对角线之和。
2025-06-22 14:18:24
239
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人