
算法学习
Kuo.S.
这个作者很懒,什么都没留下…
展开
-
图论-最小生成树-Prim
Prim算法,跟Dijkstra神似,都是寻找目前最短的路径向外找。 理解起来并不难,多用才能熟练。#include <iostream>#include <algorithm>using namespace std;const int MAX_V = 100;const int INF = 1e9 + 7;int cost[MAX_V][MAX_V];int mincost[MAX_V];原创 2016-05-11 16:33:57 · 342 阅读 · 0 评论 -
数据结构-并查集
实现简单,功能强大,居家旅行,必备良品。#include <iostream>#include <algorithm>using namespace std;const int MAX_N = 100;int par[MAX_N]; //父亲int ranks[MAX_N]; // 树的高度//初始化n个元素void init(int n) { for (int i = 0; i <原创 2016-05-11 16:55:56 · 240 阅读 · 0 评论 -
图论-最小生成树-Kruskal
利用并查集来实现判断,方便快捷。#include <iostream>#include <algorithm>using namespace std;// 使用并查集来判断是否构成回路const int MAX_N = 100;const int MAX_E = 100;int par[MAX_N]; //父亲int ranks[MAX_N]; // 树的高度//初始化n个元素void i原创 2016-05-11 17:18:58 · 393 阅读 · 0 评论 -
图论-最短路-floyd
能够求出所有点之间的最短路,利用动态规划的思想,代码非常的简介。复杂度O(V^3)。#include <iostream>#include <algorithm>using namespace std;const int MAX_V = 100;int d[MAX_V][MAX_V];int V;void warshall_floyd() { for (int k = 0; k < V;原创 2016-05-09 12:33:41 · 336 阅读 · 0 评论 -
图论-最短路-dijkstra算法
dijkstra算法的思想是每次找出目前最短路径的点,然后再找下一个最短的点。可以利用堆优化降低复杂度。缺点:不能处理负边。#include <iostream>#include <algorithm>#include <vector>#include <queue>using namespace std;const int INF = 1e9 + 7;const int MAX_V =原创 2016-05-09 12:29:58 · 445 阅读 · 0 评论 -
图论-最短路-BF算法
原来一直把好多算法当黑箱子用,但是做题中发现肯定不会考原算法的,我们必须要掌握算法的精髓思路,然后改造它,其实并不难,不要方就行。 今天先看BF算法,思路非常简单,代码也好理解。#include <iostream>using namespace std;const int INF = 1e9 + 7;const int MAX_V = 100;const int MAX_E = 100;st原创 2016-05-08 21:52:14 · 1147 阅读 · 0 评论