- 博客(12)
- 收藏
- 关注
原创 P1967 [NOIP2013 提高组] 货车运输
接下来 mm行每行3个整数x, y, z,每两个整数之间用一个空格隔开,表示从x号城市到y号城市有一条限重为z的道路。首先,题目中有很多无用的边,通过题意我们知道,要使得货车装最重的货物,那么就必须货车走的路载重要尽可能大 —— 也就是说,载重较小的路是不会被走过的。接下来 q 行,每行两个整数 x、y,之间用一个空格隔开,表示一辆货车需要从 x 城市运输货物到 y 城市,注意: x 不等于 y。求出这个,问题来了,怎么算最小边权?简单说,给你N个点,M条边的无向图,每条边有一个长度,现在有 Q个询问。
2024-02-08 09:27:04
1296
原创 P1525 [NOIP2010 提高组] 关押罪犯
每个i都有一个虚拟敌人i+n,如果i和j是敌对关系i和i+n也是敌对关系,那么i+n和j是朋友关系,同理j和i+n也是朋友关系,分别合并。接下来的M 行每行为三个正整数aj,bj,cj,表示aj 号和bj 号罪犯之间存在仇恨,其怨气值为cj。【输入输出样例说明】罪犯之间的怨气值如下面左图所示,右图所示为罪犯的分配方法,市长看到的冲突事件影响力是3512(由2 号和3 号罪犯引发)。简单说,就是有N个囚犯,他们之间会发生冲突,他们有一个怨气值,并造成影响力为 c 的冲突事件。[NOIP2010 提高组]
2024-02-03 08:41:55
638
1
原创 深度优先搜索(DFS)优化手册
在通过搜索解决实际问题的过程中,我们是通过穷举每种情况来寻找合法解,然而在一些情况比较复杂的题目、数据量较强的题目中,由于算法的时间复杂度较高、数据规模过大,从而会导致运行超时甚至程序卡死,因此在对复杂问题的答案进行搜索时,我们应该灵活的针对每种题型设计对应的搜索规则并进行优化,通常通过设置剪枝、排除无效情况、对问题进行适当的转化等手法对搜索算法进行优化,使算法高效的执行并得出我们想要的结果。
2023-06-15 11:48:50
1165
1
原创 广度优先搜索(BFS)详解
广度优先搜索(BFS)是一种用于图形数据结构的遍历算法,它从给定的起始顶点开始,以广度优先的方式逐层搜索图中的节点,直到找到目标节点或遍历完整个图。BFS算法通常使用队列数据结构来实现,它的时间复杂度为O(V+E),其中V表示图中顶点数,E表示边数。BFS算法在求解最短路径、连通性、拓扑排序等问题中具有重要应用。广度优先搜索(Breadth First Search),简称广搜(BFS)。广搜是逐层扩展状态的搜索策略,常用于解决连通性问题和最短路问题。
2023-06-12 18:07:21
5731
原创 深度优先搜索(DFS)详解
DFS,即深度优先搜索,是一种在图或树中遍历所有节点的算法。DFS可以用于许多问题的解决,如连通性问题、寻找最短路径、生成迷宫等。如下图,就是一个用DFS遍历图的例子。
2023-06-12 12:08:11
1392
原创 对顶堆详解
我们都知道,堆是一种及其有用的数据结构,他可以在短时间内维护出区间最值,但普通的堆能起到的作用毕竟是有限的,但我们可以考虑变形,解决更多的问题,例如今天我们要讲的对顶堆。顾名思义,对顶堆是两个堆,一个大根堆,一个小根堆组成的特殊的数据结构。
2023-06-09 11:52:38
1390
原创 数据结构【堆】的认识及建立
堆(Heap)是一种特殊的完全二叉树结构,其中最大堆(Max Heap)或最小堆(Min Heap)的每个节点的键值都大于或小于其子节点。在计算机科学中,堆通常用于实现优先队列,以及堆排序和图算法等算法的实现中。最大堆在堆排序中被广泛使用,最小堆通常用于贪心算法和Dijkstra算法等图算法的实现中。堆是一种可以快速查询最大值和最小值,可以插入元素,删除最大值的数据结构。堆的本质是一棵完全二叉树。
2023-06-09 10:16:33
338
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人