12 2021 档案

摘要:从一个有序数组中查找某个值 这是二分法最常用到的地方,也即折半查找法,在C++的STL库中有相关的lower_bound和upper_bound函数进行实现。 下面用代码块来实现STL中的lower_bound: int n,k;//n为数组的大小,数组为a[0~n-1],k为要搜索的值 int a 阅读全文
posted @ 2021-12-15 15:51 Lord-Phantom-city 阅读(76) 评论(0) 推荐(0)
摘要:Prim算法 核心思想:贪心的将一个又一个点加入集合,而加入的每个点都尽可能使边权最小,这样可以使用STL的priority_queue来维护。 struct edge{int to,cost;};//to表示边的终点,cost表示权值 typedef pair<int,int> P;//P.fir 阅读全文
posted @ 2021-12-13 22:32 Lord-Phantom-city 阅读(32) 评论(0) 推荐(0)
摘要:单源最短路径问题 目的:求解一类给定起点,求其到其他点的最短路的问题 Bellman-Ford算法 核心思想:记从起点s出发到顶点i的最短距离为d[i],则有如下关系: \(d[i]=min{d[j]+cost(j->i)|e=(j,i) \in E}\) 若给定的图是一个DAG(有向无环图),可以 阅读全文
posted @ 2021-12-13 20:04 Lord-Phantom-city 阅读(60) 评论(0) 推荐(0)
摘要:目的:实现对元素的分组与查找 代码实现: int par[MAX_N];//保存每个元素的父亲,父亲相同则组别相同 int rank[MAX_N];//树的高度 //初始化n个元素 void init(int n) { for(int i=0;i<n;i++) { par[i]=i; rank[i] 阅读全文
posted @ 2021-12-09 15:33 Lord-Phantom-city 阅读(32) 评论(0) 推荐(0)