图论算法
图论算法
电器爆破专家
这个作者很懒,什么都没留下…
展开
-
Prim算法
文章目录问题描述输入格式输出格式输入样例输出样例解题思路测试代码 问题描述 求解连通图的最小生成树问题 输入格式 输入的第一行包含NNN和MMM两个整数。其中,NNN为连通图中点的数量,MMM为连通图中边的数量。所有点的编号从000到N−1N-1N−1。随后有M行数据,一条边的数据占用一行,每行包含三个数据,依次为该边连接的两个顶点编号和该边的权重。始终至少有一种方法能产生最小生成树。 输出格式 输出最小生成树的权重之和。 输入样例 6 10 0 1 4 0 4 1 0 5 2 1 2 1 1原创 2021-03-05 23:18:13 · 104 阅读 · 0 评论 -
Kruskal 算法
文章目录问题描述输入格式输出格式输入样例输出样例解题思路测试代码 问题描述 求解连通图的最小生成树问题 输入格式 输入的第一行包含NNN和MMM两个整数。其中,NNN为连通图中点的数量,MMM为连通图中边的数量。所有点的编号从1到N。随后有M行数据,一条边的数据占用一行,每行包含三个数据,依次为该边连接的两个顶点编号和该边的权重。始终至少有一种方法能产生最小生成树。 输出格式 输出最小生成树的权重之和。 输入样例 4 6 1 2 1 1 3 2 1 4 3 2 3 4 3 4 3 2 4 2 输原创 2021-03-05 20:07:43 · 96 阅读 · 0 评论 -
拓扑排序
输入样例 5 7 1 0 4 3 2 1 2 0 3 2 4 1 4 2 输出样例 4 3 2 1 0 输入样例 5 8 0 3 1 0 4 3 2 1 2 0 3 2 4 1 4 2 输出样例 ERROR 测试代码 #include <vector> #include <stack> using namespace std; int main(){ size_t v, e; cin >> v >> e; vector<vecto原创 2021-03-19 20:41:04 · 78 阅读 · 0 评论 -
关键路径
输入样例 参考2013年408考研真题 输出样例 测试代码 #include <bits/stdc++.h> using namespace std; bool toporder(const vector<vector<pair<int, int> > > &adj, vector<int> &ord, vector<int> &v_e){ vector<int> ind(adj.size()原创 2021-09-09 16:19:10 · 94 阅读 · 0 评论 -
Dijstkra算法
文章目录问题描述输入格式输出格式输入样例输出样例解题思路思路优化测试代码 问题描述 在一幅图中有NNN个顶点和MMM条连接任意两点的边,每条边都是有向带权的且权值非负。求从一点出发到各点的最短路径长度及最短路径。 输入格式 & 输出格式 输入样例 6 8 0 0 1 1 0 3 4 0 4 4 1 3 2 2 5 1 3 2 2 3 4 3 4 5 3 输出样例 0 1 5 3 4 6...原创 2019-11-16 13:55:10 · 796 阅读 · 0 评论 -
Bellman Ford算法
bool bellman_ford(const vector<vector<pair<int, int> > > &adj, int sta, vector<int> &tab){ tab.resize(adj.size(), INT_MAX); tab[sta] = 0; for(size_t rou=1; rou<=adj.size(); rou++){ /// 总共进行adj.size()轮松弛操作原创 2021-09-09 11:21:01 · 100 阅读 · 0 评论 -
Floyd算法
void floyd(vector<vector<int> > &mat){ for(size_t mid=0; mid<mat.size(); mid++){ /// 中介点 for(size_t sta=0; sta<mat.size(); sta++){ /// 起始点 for(size_t des=0; des<mat.size(); des++){ /// 目的点 if原创 2021-09-09 11:33:57 · 67 阅读 · 0 评论