sdau-4-最短树、图
文章平均质量分 56
wolf__L
如果有来生,要做一棵树,站成永恒,没有悲伤的姿势:一半在尘土里安详,一半在空中飞扬;一半散落阴凉,一半沐浴阳光。非常沉默非常骄傲,从不依靠从不寻找。
展开
-
Problm-A
概述:现在给出城镇数目,各个城镇之间的距离,以及已经修建道路的城镇。城镇之间的连通符合最小生成树。求最短需要修建多长的道路可以使城镇连通。思路:用prim算法,取一个不再以连通的城镇,去权值,选择最小即可。最终输出为所求值。感想:图都已经结课了。。上周因为一些选修课结课,需要写东西和复习,然后没刷题,这个周整整一周空闲,有机会了。然后这道题在提交时候前两次我选了图的基本算法.ppt提供的p原创 2016-06-27 14:30:27 · 266 阅读 · 0 评论 -
图算法总结
图算法的问题。包括最小生成树问题和最短路问题。最小生成树问题包含两个算法,也就是prim算法和kruskal算法,最短路问题两种问题,第一种问题是单源最短路径,包括三个算法,也就是ballman-ford算法、spfa算法和dijkstra算法,另外一种问题是每对顶点的最短路径,它只包括一种算法,是floyd-washall算法。在最小生成树的问题中,prim算法依赖于强连通图的问题,而k原创 2016-07-07 11:26:53 · 431 阅读 · 0 评论 -
Problem-J
概述:从A到B,求一共有几条最短路。思路:先将给出的数据转换为两地之间的距离,然后再用bfs去求。感想:自己用bfs写的代码,最后是runtime,然后改掉部分代码,试了两次,成了timelimit。。不太理解这两个有多大区别,然后过不了,最后找到一个使用dfs的方法通过的代码,感觉差不太多的样子,就是超时不能理解。附上自己的代码:#include#include#includ原创 2016-07-04 14:20:06 · 256 阅读 · 0 评论 -
Problem-H
概述:给出一些点,要求将这些点构成一个环,求在构成环的情况下,权值最大的情况。思路:并查集的问题,用kruskal算法解决,讨论构成一个环还是两个环,一个环保留,两个环舍弃,输出整个图的最大值。感想:套用kruskal算法的模板,感觉这套题现在做过的全都是套用了模板,解决问题,唯一需要的就是变动一下输入以及细节处理,就可以。#include#include#include#inc原创 2016-07-02 16:19:12 · 260 阅读 · 0 评论 -
Problem-K
概述:输入数据有多组,每组的第一行是三个整数T,S和D,表示有T条路,和草儿家相邻的城市的有S个,草儿想去的地方有D个;接着有T行,每行有三个整数a,b,time,表示a,b城市之间的车程是time小时;(1=思路:最短路问题,用一次dijkstra算法就可以解决。将草儿的家以及邻镇看作0,然后求想去的地方的最短路。感想:套用dijkstra算法模板,然后转换输入输出就可以了,但是第一次因原创 2016-06-30 18:38:34 · 297 阅读 · 0 评论 -
Problem-I
概述:有一些t-shit,然后需要运到不同城市的地方,给出城市之间需要的时间,问所需最短时间。思路:非常简单的最短路问题,用floyd算法解决。确定好输入情况,套用基本框架即可。感想:非常简单的一道题,用算法框架即可解决。#include#include#include#include#include#includeconst int N = 105;int map[N原创 2016-06-29 21:50:50 · 214 阅读 · 0 评论 -
Problem-D
概述:有一些城镇之间需要接通道路,然后给出城镇序号和每个城镇之间的距离,求在什么情况下城镇之间道路距离之和最小。思路:很明显的最短树问题,类似于第一个问题,无非就是把邻接矩阵转换为每个城镇和城镇之间的距离,进行一部转换即可。感想:看到这个问题就想到第一个问题,这样连核心代码都没换,直接套用,就是在最后main主函数时候出了问题,要将条件转换为邻接矩阵,需要定义map[y][x]=map[x原创 2016-06-27 16:24:24 · 224 阅读 · 0 评论 -
Problem-B
概述:给出一些点的坐标,然后将这些点连成一条直线,这条直线要求长度最短。思路:很典型的最短树问题,类似于刚刚的城镇问题,无非就是将坐标转换为距离,可解。感想:做了刚刚的那个城镇问题,这道题一点都不难,就是将坐标一转换,然后源代码套用即可,问题是在提交一直ce,还以为是上一道题那种情况,改来改去发现是掉了头文件。。。。好粗心啊。#include#include#include#in原创 2016-06-27 15:52:25 · 199 阅读 · 0 评论 -
Problem-G
概述:一些城市被水淹没,现在要求在这些城市中修建可以连通的道路,其中一些城市本身存在,求在这种情况下的最短路。思路:kruskal算法问题,边权排序然后用并查集添加边即可。感想:下午做的,然后写了一篇博客,结果晚上在管理博客时候不小心删掉了。。然后再来补上。下午做的时候开始以为是prim的题目,然后画了好久的图才发现prim算法没有办法解决,不是强连通问题,而且是最短路问题,所以自然考虑的原创 2016-06-28 20:30:09 · 266 阅读 · 0 评论 -
Problem-F
概述:小岛上有一些路,这些路需要每年维护,然后因为维护金额太大,需要精简道路的长度,现在要求在连通的情况下最短,求精简后路程的长度。思路:很明显的最短树问题,跟昨天ac的几道题类似,用prim算法,将输入的数据转换为邻接矩阵即可。感想:类似昨天的题目,唯一的变化就是输入数据再度改变,所以只要将输入数据改成矩阵,核心prim代码完全不用改变就轻松ac。#include#include原创 2016-06-28 12:55:03 · 191 阅读 · 0 评论 -
Problem-E
概述:基本内容同Problem-D,唯一不同就是加入了一个修建状态,即这条道路又可能已经修建,求在这种状态下的最短长度。思路:大致同Problem-D,状态就是需要比较一下即可,已修建则不需要在修建,只需要判断未修建的。看到题目的一瞬间感觉这套题疯了,连续5道题目,代码基本可以套用,这道题格外,就是判断一下状态即可。但是不理解的是同一套代码竟然超时。。上一道题可没有这样。。。改完后轻松ac原创 2016-06-27 16:42:50 · 220 阅读 · 0 评论 -
Problem-C
概述:某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接连通的城镇。省政府“畅通工程”的目标是使全省任何两个城镇间都可以实现交通(但不一定有直接的道路相连,只要互相间接通过道路可达即可)。问最少还需要建设多少条道路? 思路:并查集的问题,非常典型。感想:半个月前开的这套题,然后上周才a的,今天才来写这个博客,有点晚。。#includeusing namespace s原创 2016-06-23 11:30:16 · 224 阅读 · 0 评论