8、图论
.
Estrellas_
I am the king of the world.
展开
-
关键路径【有向无环图的最长路径】
1、ve数组的求解ve:顶点(事件)的最早开始时间(时刻)。//拓扑序列 stack<int> topOrder;//拓扑排序,顺便求ve数组 bool topologicalSort(){ queue<int> q; for(int i=0;i<n;i++) //遍历所有点,将入度为0的点加入队列 { if(inDegree[...原创 2020-01-28 19:30:34 · 1273 阅读 · 0 评论 -
拓扑排序
注意:1、队列的使用。//拓扑排序vector<int> G[maxv];int n,m,inDegree[maxv];bool topologicalSort(){ int num=0; queue<int> q; for(int i=0;i<n;i++) //将所有入度为0的点入队 { if(inDegree[i]==0)...原创 2020-01-28 14:51:20 · 178 阅读 · 0 评论 -
kruskal最小生成树算法
注意:1、并查集的巧妙应用。一、大致框架1、边的数据结构定义struct edge{ int u; //u、v: 边的两个端点 int v; int cost;}E[maxe];2、比较函数bool cmp(edge a,edge b){ return a.cost<b.cost;}3、kruskal函数int father[...原创 2020-01-28 14:13:53 · 179 阅读 · 0 评论 -
prim最小生成树算法
const int maxv=1000;const int inf=1000000000;1、邻接矩阵版primint G[maxv][maxv];int n;int d[maxv];bool vis[maxv]={false};int prim(){ fill(d,d+maxv,inf); d[0]=0; int ans=0; for(int i=0;...原创 2020-01-27 22:48:08 · 188 阅读 · 0 评论 -
弗洛伊德算法【全源最短路径】
弗洛伊德算法全源最短路径#include<cstdio>#include<algorithm>using namespace std;const int inf=1000000000;const int maxv=200;int n,m;int dis[maxv][maxv];void Floyd(){ for(int k=0;k<n...原创 2020-01-27 21:06:26 · 250 阅读 · 0 评论 -
SPFA算法求最短路径
vector<Node> adj[maxv];int n,d[maxv],num[maxv];bool inq[maxv];bool SPFA(int s){ memset(inq,false,sizeof(inq)); memset(num,0,sizeof(num)); fill(d,d+maxv,inf); queue<int> q; q.p...原创 2020-01-27 17:44:37 · 290 阅读 · 0 评论 -
pat a1003 Bellman-Ford求最短路径
题目:https://pintia.cn/problem-sets/994805342720868352/problems/994805523835109376#include<cstdio>#include<cstring>#include<vector>#include<set>#include<algorithm&...原创 2020-01-27 16:40:09 · 247 阅读 · 0 评论 -
Bellman-Ford算法求最短路径
struct Node{ int v; int dis;};vector<Node> adj[maxv]; //图的邻接表 int n; //n为顶点数 int d[maxv]; //从起点到各点的最短路径长度 bool Bellman(int s){ fill(d,d+maxv,inf); d[s]=0; //求数组d for(int ...原创 2020-01-27 16:39:24 · 297 阅读 · 0 评论 -
pat a1030 Travel Plan 【Dijkstra求最短路径】
题目:https://pintia.cn/problem-sets/994805342720868352/problems/994805464397627392https://www.nowcoder.com/pat/1/submission-detail/64261014一、问题描述A traveler's map gives the distances between c...原创 2020-01-26 20:45:30 · 215 阅读 · 0 评论 -
Dijkstra+DFS
1、使用Dijkstra算法记录所有的最短路径vector<int> pre[maxv];void Dijkstra(int s) { fill(d,d+maxv,inf); d[s]=0; for(int i=0;i<n;i++) { int u=-1; int min=inf; for(int j=0;j<n;j++) { if(...原创 2020-01-26 15:57:39 · 261 阅读 · 1 评论 -
pat a1003 Emergency 【dijkstra求最短路径】
题目:https://pintia.cn/problem-sets/994805342720868352/problems/994805523835109376一、问题描述As an emergency rescue team leader of a city, you are given a special map of your country. The map shows ...原创 2020-01-26 14:37:14 · 231 阅读 · 0 评论 -
Dijkstra求最短路径
const int maxv=1000;const int inf=1000000000;1、全局变量int G[maxv][maxv];int n;int d[maxv]; //起点到各点的最短路径长度 bool vis[maxv]={false};int pre[maxv];2、Dijkstra实现void Dijkstra(int s) { fill(d...原创 2020-01-25 18:06:01 · 249 阅读 · 0 评论 -
Dijkstra求最短距离
const int maxv=1000;const int inf=1000000000;1、邻接矩阵版Dijkstraconst int maxv=1000;const int inf=1000000000;//1、邻接矩阵版Dijkstraint G[maxv][maxv];int n;int d[maxv]; //起点到各点的最短路径长度 bool vis[m...原创 2020-01-25 15:16:35 · 627 阅读 · 0 评论 -
pat a1076 微博转发人数_广搜
一、问题描述1076Forwards on Weibo(30分)Weibo is known as the Chinese version of Twitter. One user on Weibo may have many followers, and may follow many other users as well. Hence a social network is fo...原创 2020-01-23 21:06:03 · 192 阅读 · 0 评论 -
图的广搜
1、邻接矩阵版BFSint n; int G[maxv][maxv];bool inq[maxv]={false};void BFS(int u){ queue<int>q; q.push(u); inq[u]=true; while(!q.empty()) { int u=q.front(); q.pop(); for(int v=0;v&...原创 2020-01-23 12:47:58 · 235 阅读 · 1 评论