图算法
ACM-Blog-WUCHAO
这个作者很懒,什么都没留下…
展开
-
图算法—Problem D
图算法—Problem D 题意 某省调查乡村交通状况,得到的统计表中列出了任意两村庄间的距离。省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可),并要求铺设的公路总长度为最小。请计算最小的公路总长度。 解题思路 依旧是最小生成树问题,这里用Kruskal算法,把边按权值从小到大到大排好序,每次取最小的边,用并查集的思想查原创 2016-06-25 19:30:20 · 274 阅读 · 0 评论 -
图算法—Problem M
图算法—Problem M 题意 有n个人坐在zjnu体育馆里面,然后给出m个他们之间的距离, A B X, 代表B的座位比A多X. 然后求出这m个关系之间有多少个错误,所谓错误就是当前这个关系与之前的有冲突。解题思路 (1)弄清题意,找出出现冲突的位置,判断冲突很简单: 就是当两个人在同一行坐同时, 他们到根节点的距离差值正好是他们之间的距离差值。如果和测试数据不同,此时就出现了冲突了。原创 2016-07-06 22:35:18 · 470 阅读 · 0 评论 -
图算法—Problem J
图算法—Problem J 题意 题目大意是给一个图。起点为1,终点为2;然后点a到点b是合法的判断是当b存在一个到终点的距离小于a到终点的最小距离。求从起点到终点的路径数。解题思路 我的做法是dijk +DFS。具体为: 1、以终点 2 为起点 dijkstra; 2、直接DFS记忆化搜索。 感想 已经做不动了······ AC代码#include<cstdio>原创 2016-07-06 12:36:27 · 271 阅读 · 0 评论 -
图算法—Problem H
图算法—Problem H题意 求一个图的最大连通子图,要求每个联通分量最多只有一个环,且所求的边的权值之和最大。 解题思路 每输入一条边,判断此边两端点是不是在同一颗树上,如果在同一颗树上,判断树是不是有环,如果有环,则不加入此边,如果没环,加入此边(合并); 如果两棵树都没有环,直接合并即可;如果只有一棵树有环,可以合并,并标记; 如果都有环,显然不能合并。 感想 最大连通子图问原创 2016-07-05 12:14:33 · 341 阅读 · 0 评论 -
图算法—Problem K
图算法—Problem K 题意 虽然草儿是个路痴(就是在杭电待了一年多,居然还会在校园里迷路的人,汗~),但是草儿仍然很喜欢旅行,因为在旅途中 会遇见很多人(白马王子,^0^),很多事,还能丰富自己的阅历,还可以看美丽的风景……草儿想去很多地方,她想要去东京铁塔看夜景,去威尼斯看电影,去阳明山上看海芋,去纽约纯粹看雪景,去巴黎喝咖啡写信,去北京探望孟姜女……眼看寒假就快到了,这么一大段时间,可原创 2016-07-04 12:04:15 · 224 阅读 · 0 评论 -
图算法—Problem B
图算法—Problem B 题意 给你一些点的坐标,然后求连通这些点的最小线段的长度。 解题思路 最小生成树问题。需要对这n个点全部处理一下,求出每对点之间的长度,然后存入邻接矩阵。然后就可以了。本题主要用kruskal算法 和用并查集来判环。 感想 虽说是最小生成树入门题,但是也挺麻烦。 AC代码#include <iostream>#include <algorithm>#in原创 2016-06-17 11:09:57 · 238 阅读 · 0 评论 -
图算法—Problem I
图算法—Problem I 题意 在每年的校赛里,所有进入决赛的同学都会获得一件很漂亮的t-shirt。但是每当我们的工作人员把上百件的衣服从商店运回到赛场的时候,却是非常累的!所以现在他们想要寻找最短的从商店到赛场的路线,你可以帮助他们吗? 解题思路 本题是图的最短路径的一个应用,从题目中可以分析得出是求两点间的最短路径,所以我们可以选择Floyd算法。 感想 最短路之最短路···原创 2016-07-02 22:20:20 · 2367 阅读 · 0 评论 -
图算法—Problem F
图算法—Problem F题意 在相通n个岛屿的所有桥都坏了,要重修,重修每一个桥所用的时间不同,求重修使每个岛屿都间接或直接与其他岛屿相同时所用的的最短时间(只有修完一个桥后才可修下一个桥)。//简言之就是求最小生成树。 解题思路 该题图为稀疏图,还是最小生成树问题,用Kruskal算法解决。 假设WN=(V,{E})是一个含有n个顶点的连通网,则按照克鲁斯卡尔算法构造最小生成树的过程为原创 2016-07-01 12:05:38 · 232 阅读 · 0 评论 -
图算法—Problem A
图算法—Problem A 题意 题目大意就是输入一个N表示有n个村庄,然后输入n行n列,第i行j个元素表示i村庄离j村庄的路数多远(所以i行i列一般为零),然后输入q,表示q条路已修,然后输入q对数就可以了。(权值为零)。求使其n个村庄最小的连通值。 解题思路 最小生成树问题。看PPT上有Prim算法和Kruskal算法两种。这道题采用的是Prim算法。写的过程中,需要注意的一点就是可能会原创 2016-06-15 11:05:52 · 261 阅读 · 0 评论 -
图算法—Problem E
图算法—Problem E题意 省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可)。现得到城镇道路统计表,表中列出了任意两城镇间修建道路的费用,以及该道路是否已经修通的状态。现请你编写程序,计算出全省畅通需要的最低成本。 解题思路 不多说,还是最小生成树问题。用的Kruskal方法。 感想 最近忙着复习,哎,事情好多,原创 2016-06-30 12:44:51 · 201 阅读 · 0 评论 -
图算法—Problem C
Problem C问题描述 某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接连通的城镇。省政府“畅通工程”的目标是使全省任何两个城镇间都可以实现交通(但不一定有直接的道路相连,只要互相间接通过道路可达即可)。问最少还需要建设多少条道路? 解题思路 典型的并查集问题。相互连接的城市构成一个集合,只需要判断集合个数即可知道要修多少条路。集合个数的判断也可以根据每个集合只有一原创 2016-06-12 11:04:07 · 243 阅读 · 0 评论 -
图算法总结
图算法总结图 (Graph) 是一种复杂的非线性数据结构,由顶点集合及顶点间的关系(也称弧或边)集合组成。可以表示为: G=(V, {VR}) 其中 V 是顶点的有穷非空集合; VR 是顶点之间关系的有穷集合,也叫做弧或边集合。弧是顶点的有序对,边是顶点的无序对。 度:无向图中顶点 v 的度是和 v 相关联的边的数目,记为TD(v)。 入度:有向图中以顶点 v 为终点的弧数目称为 v 的入度原创 2016-07-08 12:00:22 · 533 阅读 · 0 评论