![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
图
在下朱发财
我很懒
展开
-
深度优先搜索和宽度优先搜索
有手就行。 #include<stdio.h> #include<stdlib.h> #include<iostream> #include<queue> #include<algorithm> using namespace std; struct zong{ char a[50]; int juzhen[50][50]; int n,e; }; int vis[50]; queue<int>q; void bfs(stru原创 2020-07-16 21:19:16 · 315 阅读 · 0 评论 -
拓扑排序
从没有入的点开始找就完了,找完入得点,删除他出的点的入度,不断找0 不断输出 #include <stdio.h> #include <stdlib.h> #include <string.h> #define V 510 //最大顶点数 int G[V][V]; //图 int degree[V]; //记录各顶点的入度 void topological_sort(int n) //拓扑排序函数 { int i, j, k; for.原创 2020-07-16 21:18:01 · 121 阅读 · 0 评论 -
floyd 佛洛依德算法
怎么硕呢,最起初的动态规划,用k一直在i和j之间反颠覆找更短的,如果更短就赋值。 这不是有手就行? //核心代码 for (k=0;k<n;k++) //计算Ak { for (i=0;i<n;i++) for (j=0;j<n;j++) if (A[i][j]>(A[i][k]+A[k][j])) { A[i][j]=A[i][k]+A[k][j]; path[i][j]=k; } } ...原创 2020-07-16 21:16:11 · 279 阅读 · 0 评论 -
克鲁斯卡尔算法(Kruskal算法) 考研计算机
相比较克鲁斯卡尔来说,prime 和 迪杰斯特拉是以点展开验证边。而克鲁斯卡尔是以边为展开看连接点点是否属于都一个跟(并查集) #include <stdio.h> #include <string.h> #include <algorithm> #define MAXN 11 //顶点个数的最大值 #define MAXM 20 //边的个数的最大值 using namespace std; //测试样例 //7 12 //1 2 12原创 2020-07-16 21:12:14 · 250 阅读 · 0 评论 -
(迪杰斯特拉)Dijkstra算法 与 普里姆算法(Prim算法)
怎么硕呢 这俩肯定是一个人抄了另一个人的代码。就在花费那一部分 一个是d[u] = mp[u][v]+d[v] (迪杰斯特拉) 另一个是d[u] = mp[u][v] 大体思路就是一直找和以之节点相通的节点之间最省钱的路径就完了。 相比较克鲁斯卡尔来说,一个是以点展开验证边。而克鲁斯卡尔是以边为展开看连接点点是否属于都一个跟(并查集) #include<stdio.h> #include<string.h> #define INF 0x3f3f3f3f //测试样例 /..原创 2020-07-16 21:11:23 · 1788 阅读 · 0 评论