数据结构-图论
文章平均质量分 74
爱抠脚的coder
这个作者很懒,什么都没留下…
展开
-
畅通工程
题目网址:畅通工程题目比较简单,与之前的还是畅通工程相比就是多了判断是否可以构成最小代价生成树,即使用一个cnt,判断是否parent[i]==i的数目大于1,那么就是存在节点不在最小生成树上。直接给出源码:/*题目描述: 省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可)。经过调查评估, 得到的统计表中列出了有可原创 2017-09-24 16:32:28 · 293 阅读 · 0 评论 -
Freckles
题目网址:Freckles题目大意:给出n个点的坐标,求出将这些点相连,这种连接方式使得所有线段长度和最小,求这个长度和为多少?其实这道题,比最小生成树的求解多了一个步骤,因为给的是一系列的点,并不像之前的题目给的是一系列的边,我只需要将边权值排序然后kruskal就行,这道题我需要利用一个结构体存储那些输入的点,然后在求解。#include#include#include#in原创 2017-09-24 15:23:27 · 247 阅读 · 0 评论 -
jungle roads
题目网址:jungle roads题目大意:指的是给你一个图,让你给出将所有节点相连接起来的最小的花销,花销与边权值是相对应的,最终输出最小的结果。这个输入是比其他稍微复杂点,给n表示村庄的数目,接下来n-1行,第一个字符是起点,第二个数字是表示与这个起点相邻的节点的个数,然后是相邻节点的字符和距离;就是采用并查集来做,最小生成树的kruskal算法,直接给出源代码了。。#includ原创 2017-09-24 15:55:37 · 375 阅读 · 0 评论 -
继续畅通工程
题目网址:继续畅通工程题目分析:这个比之前的还是畅通工程相比多了一个就是有的路已经修好了,无需在花销,所以我们比之前的做法只是多判断一点,如果已经修过了,那么我们就把这条路的花销修改为0,其他不变。#include#includeusing namespace std;int parent[102];int findroot(int x){ if (parent[x] != x)原创 2017-09-24 16:39:20 · 443 阅读 · 0 评论 -
邻接矩阵实现图论的相关算法
/*这一篇文章是关于图论的,采用的是邻接矩阵的方式存储;重要的算法包括:图的深度遍历、宽度遍历、拓扑排序、关键路径、最小代价生成树、最短路径等问题必须注意的是:因为是邻接矩阵的存储,需要注意是有向图,无向图,还是网;对角线的元素为0,对于存在边和不存在边的情况,有向图和无向图处理方法是不一样的!如果是有向图的话,那么我们存在边的时候是权值,没有边的时候NoEdge=INF;原创 2017-09-18 15:33:45 · 941 阅读 · 0 评论 -
邻接表实现图论的各个算法
/*在这个代码里面,我主要实现的利用邻接表来存储图论,定义了一个类,里面有一个私有的node **a;这个表示的是一维的指针数组,但是在邻接矩阵实现里面也有一个int *aa,这个是动态生成二维数组,注意两者的类的构造函数和析构函数的区别,是个重点!主要实现算法:深度宽度遍历,拓扑排序,单源最短路径dijkstra,最小生成树(prim)等等#include#includeusing na原创 2017-09-18 19:50:20 · 635 阅读 · 0 评论