
C++算法设计
文章平均质量分 89
coding者在努力
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
骰子游戏(2023睿抗省赛)
题目描述了一个骰子游戏,玩家需要投掷5个标准六面骰子,根据点数组合获得不同的“获胜等级”。玩家可以选择任意数量的骰子重投一次,目标是最大化获得比当前等级更好的获胜等级的概率。输入包含多组数据,每组数据为5个骰子的点数,输出需要重投的骰子数量以及获得更好等级的概率的最简分数。 解题思路是通过枚举所有可能的骰子重投组合(共32种),对每种组合进行深度优先搜索(DFS)枚举所有可能的重投结果,统计其中严格优于当前等级的次数,计算概率并选择最优方案。最终输出重投骰子数量及概率的最简分数。 代码实现中,首先定义了一个原创 2025-05-22 13:52:30 · 1406 阅读 · 0 评论 -
建图,存图大法.看看我是怎么z,h的
C++建图,适用于大部分场景,包括竞赛熬原创 2025-05-08 21:21:12 · 475 阅读 · 0 评论 -
Bellman-Ford算法(详解版)
Bellman-Ford算法是解决带负权图的单源最短路径问题的经典算法。该算法通过V-1轮边松弛操作来确定最短路径,时间复杂度为O(VE)。其核心思路是:每轮遍历所有边,若能通过某条边缩短路径则更新距离值。算法还可检测负权环:若完成V-1轮松弛后仍能继续优化,则存在负环。SPFA是对Bellman-Ford的队列优化,只考察被松弛点连接的边,提升了效率。注意区分检测从源点可达的负环和全图负环的不同方法,后者需引入虚拟源点。该算法弥补了Dijkstra无法处理负权图的缺陷,是图论中的重要基础算法。原创 2025-06-14 14:44:09 · 760 阅读 · 0 评论 -
Floyd算法详解
本文介绍了Floyd算法在求解最短路径问题中的应用。该算法适用于带权有向图和无向图(包含负权值但不含负环),能够计算任意两点间的最短距离。其核心思想是通过枚举所有可能的中间节点作为"跳板",检查是否能够缩短两点间距离,时间复杂度为O(n³)。文章以牛勒比海寻宝问题为例,展示了如何使用Floyd算法求解必须经过特定岛屿序列时的最小危险指数路径。通过预处理所有岛屿间的最短路径,再累加给定序列相邻岛屿间的最短距离,即可得到最优解。示例代码实现了这一算法流程。原创 2025-06-14 15:09:36 · 640 阅读 · 0 评论 -
PTA数据结构与算法期末模拟题中的一套题目
PTA数据结构与算法期末模拟题一套私我获得原版资料原创 2025-01-07 14:20:45 · 687 阅读 · 0 评论 -
C++STL之vector常用方法讲解
介绍一下vector容器在日常使用中一些常用的方法原创 2024-12-24 12:50:02 · 368 阅读 · 0 评论 -
工作安排小K
本文讨论了如何为小 K 规划工作以最大化报酬的问题。每项工作有固定的时间需求、截止时间和报酬。首先,提出了递归解决方案,通过贪心策略选择最早截止的工作,并考虑做与不做的收益。接着,介绍了动态规划方法,定义状态 dp[i][j] 表示前 i 项工作在时间 j 内的最大报酬,并通过状态转移方程进行优化。最后,提供了代码实现,并建议使用 #pragma optimize(2) 来提升性能。原创 2025-05-21 21:30:42 · 867 阅读 · 0 评论