
Volume 7.0 Graph Algorithms
文章平均质量分 70
深蓝色的猫
一个努力成长为大牛的蒟蒻程序媛
展开
-
UVa OJ 567
1、本题就是求无权图上任意两点间最短距离,用Floyd算法即可,一次AC~#include #include #include using namespace std;const int INF=100;int main(){ //freopen("a.txt","r",stdin); int num,temp,x,y,kase=0; in原创 2013-08-21 14:54:44 · 359 阅读 · 0 评论 -
UVa OJ 10034
1、本题是求最小生成树,权值就是两点间距离,因为题目给出的信息是以点为中心的,所以选择用prim算法。一次AC~#include#include#includeusing namespace std;typedef struct{ double x,y;}point;point p[110];int parent[110];bool intree[110原创 2013-08-21 16:25:41 · 306 阅读 · 0 评论 -
UVa OJ 1203
#include#includeusing namespace std;struct Item{ int QNum,Period,Time; bool operator return Time>a.Time||(Time==a.Time&&QNum>a.QNum); }};int main(){ priority_queuepq;原创 2013-08-19 18:20:27 · 267 阅读 · 0 评论 -
UVa OJ 10048
1、这道题竟是用Floyd算法,很灵活,要不是上网搜题解还真想不到。证明算法导论上有,但我没看懂,一定要抽空再看一看。2、要是网络赛前做了这道题,那道跟这个非常相似的题说不定就做出来了。唉,还需要努力啊!#include#include#includeusing namespace std;const int INF=100000010;int G[110][110];原创 2013-10-13 22:56:34 · 286 阅读 · 0 评论 -
UVa OJ 10397
1、最近对图论很感兴趣。。。这个是一道最小生成树的题目,用Kruskal即可。要注意有一些边已经给出,不需要连接,所以设它们的权值为0。2、注意题目中的点的编号是从1开始的,而程序中是从0开始的。3、vis的时候要写两个。。。以防万一。。。4、还是不太熟练,图论非常薄弱。5、刚开始数组开了六万多,RE了,应该开六十万多。#include#include#include原创 2013-11-07 15:27:39 · 276 阅读 · 0 评论 -
UVa OJ 10369
1、刚开始看这道题还以为是最短路,因为没有注意到两个地点用的是一个仪器。其实就是求最小生成树的第s-n小边。2、数组开小了,RE了两次。#include#include#includeusing namespace std;struct point{ int x,y;}a[510];struct edge{ int u,v; doubl原创 2013-11-07 20:32:54 · 347 阅读 · 0 评论 -
UVa OJ 10099
1、这是一个“最小值最大”的图论问题,以前做过类似的,用Floyd算法。注意在优化的时候要先判断是否两段路都大于0。2、注意导游要跟团,所以容量要减一。#include#include#includeusing namespace std;int G[110][110];int main(){ int n,r,x,y,p,temp,cnt=0; wh原创 2013-11-08 22:25:58 · 426 阅读 · 0 评论 -
UVa OJ 658
1、本题是一道最短路问题,实际上就是求始态(11111)到终态(00000)的最短路,一个状态(01组合)就是一个结点。2、可以用FIFO队列优化的Bellman_Ford(就是SPFA啦)做,因为时间是正数所以不存在负权回路。3、转化的条件是‘+’的地方一定是1,‘-’的地方一定是0,而‘0’的地方则无关紧要,为此要使用位运算。关于位运算的技巧我摘抄某ACMer的解题报告吧:原创 2013-11-08 20:15:28 · 410 阅读 · 0 评论 -
UVa OJ 10801
1、不知道是UVa的题太难了还是我太弱了,这道题写了三个多小时。终于学会了用优先队列来优化的dijkstra以及前向星表示法。2、我是这么做的:对每一对结点(楼层),记录四个信息,始发点,终点,时间,电梯类型。注意每一对都要,而不是仅仅是楼层相连的需要。否则在加60的时候会遇到麻烦,dijkstra说到底是用的贪心,如果仅仅记录相连的楼层的话,可能会漏掉一些方案(目光短浅)。我举个例子,如0到原创 2014-01-26 17:07:57 · 342 阅读 · 0 评论