图
小魚兒.
天下皆白,唯我独黑!
展开
-
10.6 拓扑排序(判断给定图是否是有向无环图)
//拓扑排序#include <cstdio>#include <vector>#include <queue>using namespace std;vector<int> G[maxv]; //邻接表int n,m,inDegree[maxv]; //顶点数、入度 bool topologicalSort() //拓扑排序 {...原创 2019-11-09 14:31:08 · 383 阅读 · 0 评论 -
10.5.3 最小生成树——kruskal算法(测试用例)
#include <cstdio>#include <algorithm>using namespace std;const int maxv=110;const int maxe=10020;//边集定义部分struct edge{ int u,v; //边的两个端点编号 int w; //边权 }E[maxe]; bool cmp(edge a ...原创 2019-11-07 15:27:22 · 477 阅读 · 0 评论 -
10.5.3 最小生成树——kruskal算法
#include <cstdio>#include <algorithm>using namespace std;//最小生成树——kruskal算法struct edge{ //边的定义 int u,v;//边的两个端点编号 int w; //边的边权 }E[maxe];//最多有maxe条边bool cmp(edge a,edge b)//排序函数...原创 2019-11-07 15:08:52 · 151 阅读 · 0 评论 -
10.4 最小生成树——prim算法(测试用例)
#include <cstdio>#include <algorithm>using namespace std;const int maxv=1010;const int INF=0x3fffffff;int n ,m,G[maxv][maxv];int d[maxv];bool vis[maxv]={false};int prim(){ fill...原创 2019-11-07 14:38:14 · 1749 阅读 · 0 评论 -
10.5 最小生成树——prim算法
#include<cstdio>#include <vector>using namespace std;//求最小生成树——Prim算法——从一点出发逐步扩散求解//1、伪代码 prim(G,d[]){ 初始化; for(循环n次) { u=使d[u]最小的还未被访问的顶点的编号; 记u以访问; for(从u出发能到达的所有顶点v) {...原创 2019-11-06 15:51:30 · 266 阅读 · 0 评论 -
10.4.3 全源最短路径——Floyd算法
#include <cstdio>#include <algorithm>using namespace std;//Floyd 算法——全源最短路径//伪代码/*枚举顶点k∈[1,n] 以顶点k作为中介点,枚举所有顶点对i和j(i∈[1,n],j∈[1,n] ) 如果dis[i][k]+dis[k][j]<dis[i][j]成立 //找到以k为中...原创 2019-11-06 15:04:36 · 180 阅读 · 0 评论 -
SPFA算法——优化后的Bellman算法
#include <cstdio>#include <queue>#include <vector>using namespace std;//优化后的Bellman算法——SPFA//1、伪代码queue <int> q;q.push(s) ;//源点s入队while(!q.empty()) //队列非空{ int u=q...原创 2019-11-06 14:38:57 · 128 阅读 · 0 评论 -
10.4 PAT A1003 Emergency (25 分)(最短路径及最大点权——Bellman算法实现)
1003 Emergency (25 分)As an emergency rescue team leader of a city, you are given a special map of your country. The map shows several scattered cities connected by some roads. Amount of rescue teams...原创 2019-11-05 15:24:19 · 192 阅读 · 0 评论 -
PAT 10.4 A 1030 Travel Plan (30 分)(最短路径及最小花费——Dijkstra算法)
1030 Travel Plan (30 分)A traveler's map gives the distances between cities along the highways, together with the cost of each highway. Now you are supposed to write a program to help a traveler to d...原创 2019-11-03 15:55:24 · 151 阅读 · 0 评论 -
PAT A 1003 Emergency (25 分)(图的最短路径条数及最大点权)(Dijkstra算法)
1003 Emergency (25 分)As an emergency rescue team leader of a city, you are given a special map of your country. The map shows several scattered cities connected by some roads. Amount of rescue teams...原创 2019-11-02 15:20:52 · 160 阅读 · 1 评论 -
10.4 最短路径(黑暗大陆——亚历山大)
#include <cstdio>#include <algorithm>using namespace std;const int maxv=1122;const int INF=1000000000;int n,m,s,G[maxv][maxv];int d[maxv];bool vis[maxv]={false};void Dijkstra(int...原创 2019-10-30 15:28:00 · 86 阅读 · 0 评论 -
10.4 最短路径相关算法——点权、边权、最短路径条数(基础算法)
#include <cstdio>#include <vector>using namespace std;//单源最短路径——Dijkstra算法//1、伪代码//G为图,一般设成全局变量 ,数组d为源点到达各点的最短路径长度/*Dijstra(G,d[],s){ 初始化; for(循环n次) { u=使d[u]最小的还未被访问的顶点的标号 ...原创 2019-10-30 15:07:13 · 1638 阅读 · 0 评论 -
PAT A1021 Deepest Root (25 分)(10.3 判断给定图是否为树,并求最大高度,输出最大高度时的根结点)
1021 Deepest Root (25 分)A graph which is connected and acyclic can be considered a tree. The height of the tree depends on the selected root. Now you are supposed to find the root that results in a ...原创 2019-10-29 15:19:09 · 125 阅读 · 0 评论 -
PAT A10.4 1013 Battle Over Cities (25 分)(求删除结点后所需增加边数是图连通——求连通分量数)
1013 Battle Over Cities (25 分)It is vitally important to have all the cities connected by highways in a war. If a city is occupied by the enemy, all the highways from/toward that city are closed. We...原创 2019-10-28 15:07:11 · 119 阅读 · 0 评论 -
Code Up 10.3 图的遍历——问题 B: 连通图(求连通分量的个数)(DFS及BFS写法)
问题 B: 连通图题目描述给定一个无向图和其中的所有边,判断这个图是否所有顶点都是连通的。输入每组数据的第一行是两个整数 n 和 m(0<=n<=1000)。n 表示图的顶点数目,m 表示图中边的数目。如果 n 为 0 表示输入结束。随后有 m 行数据,每行有两个值 x 和 y(0<x, y <=n),表示顶点 x 和 y 相连,顶点的编号从 1 开始...原创 2019-10-27 15:42:56 · 521 阅读 · 0 评论 -
Code Up 10.3问题 A: 第一题(利用DFS求图的连通分量)
问题 A: 第一题题目描述该题的目的是要你统计图的连通分支数。输入每个输入文件包含若干行,每行两个整数i,j,表示节点i和j之间存在一条边。输出输出每个图的联通分支数。样例输入1 44 35 5样例输出2题意非常简单明了,此处用DFS求解注意:1、数组必须开到1000000 量级,不然会运行错误 2、必须用adj...原创 2019-10-26 16:29:38 · 229 阅读 · 0 评论 -
PAT A1076 Forwards on Weibo (30 分)(图的BFS应用——求一点可达结点数)
1076 Forwards 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 formed wi...原创 2019-10-26 15:26:43 · 143 阅读 · 0 评论 -
第十章 图(BFS基础算法)
//图的广度优先遍历BFS//利用队列,从出发点将第一个顶点入队,队列不空时出队,并将该顶点所能到达的所有顶点//入队,并在出队时访问。直至队列空//伪代码 #include <cstdio>#include <queue>using namespace std;BFS(u){ queue< > q; //定义队列 将u入队; inq...原创 2019-10-25 16:34:39 · 105 阅读 · 0 评论 -
PAT A 1034 Head of a Gang (30 分)(图的DFS遍历的应用)
1034 Head of a Gang (30 分)One way that the police finds the head of a gang is to check people's phone calls. If there is a phone call between A and B, we say that A and B is related. The weight of a...原创 2019-10-25 15:43:41 · 133 阅读 · 0 评论 -
10 图算法初步——基础知识准备
图的相关基础知识准备:#include <cstdio>#include <vector>using namespace std;//第十章!图//1 图的遍历//DFS//伪代码/*DFS(u){ vis[u]=true; //1设置u已被访问 for(从u出发能到达的所有顶点)//2枚举从u出发可以到达的所有顶点v { if(vis[...原创 2019-10-24 16:01:59 · 134 阅读 · 0 评论