
图
big up
这个作者很懒,什么都没留下…
展开
-
uva753 (建图 & 最大流)
题目大意: 有n个插座,并有大写字母表示插座的类型。 有m个电器,给出电器的名称以及电器适合的插座类型。 有k个转换器,给出入口类型以及转换后插座的类型。 求最后有几个电器无法插入插座中。思路: 建图。 建立一个超级源点,超级源点到设备的容量为1,如果有重复的要+上,设备与设备所用的插座之间有一条边,容量也为1,如果有重复的也要+上,转换器的插座与插座之间的容量是INF,因为转换器可以有原创 2016-03-16 16:44:12 · 349 阅读 · 0 评论 -
uva567 floyd
题目大意: 首先写出19行,每行包含一个n,后面跟着n个数字,表示行数i与这些数字都是联通的。输完19行之后,后面跟着一个数字m,后面m行包含一个开始s和一个结束e,给出每组数据s到e的最短距离是多少。思路: 利用floyd算法。 floyd算法就是先将每两个之间的值vis[i][j]设为无穷大,如果两个点之间是有联系的就置为1,vis[i][j] =min(vis[i][j],vis[i][原创 2016-03-09 19:17:14 · 278 阅读 · 0 评论 -
uva10034
题目大意: 给出背上斑点的坐标,求连接这些斑点所用的最少的墨水。思路: 最小生成树代码:#include <iostream>using namespace std;#include <cstring>#include <stdio.h>#include <cmath>#include <algorithm>double x[105],y[105];double dis[5050];原创 2016-03-09 21:00:28 · 413 阅读 · 0 评论 -
uva10048 (floyd & kruskal)
题目大意: 给出两点和他们之间的噪音值,找出从起点到终点的一条路,使得这条路中噪音最大的是所有路径中最小的。思路: floyd算法: 找出一条路中噪音最大的 例如i和j之间噪音最大值是: d[i][j] = min(d[i][j],max(d[i][k],d[k][j])); 即可能是i直接到j的噪音最大或者i到j的路途中某一段的噪音最大kruskal算法: 由于该算法是按照权值一个一原创 2016-03-09 22:58:15 · 382 阅读 · 0 评论 -
uva658
题目大意: 首先给出n和m,表示有n个bug和m个补丁。一开始存在n个bug,用1表示一个bug存在0表示不存在,所以一开始就是n个1,我们的目的是要消除所有的bug,所以目标状态就是n个0。对于每个补丁,会给出使用这个补丁的时间,另外会给出两个长度为n的字符串,第一个字符串表示这个补丁适用于什么情况下的bug,第二个字符串表示使用完这个补丁后原来的bug会变成怎么样。先说第一个字符串,s[i]=原创 2016-03-10 18:41:02 · 1107 阅读 · 1 评论 -
uva10099 (floyd & 最大生成树)
题目大意: 有一个导游,要将游客从城市i送到城市j,有的城市之间是有公交车可以直达的,但是公交车是有限制人数的。问导游需要多少趟才能把所有的游客从城市i送到城市j。思路: 其实这道题说白了就是算从城市i到j的路径当中,要找出一条路径的最小值是所有路径最小值当中最大的。 floyd算法: d[i][j] = max(d[i][j],min(d[i][k],d[k][j]));kruskal算法原创 2016-03-10 19:27:52 · 524 阅读 · 0 评论 -
uva10801(最短路问题)
题目大意: 有一层不超过100层的大楼, 有n个电梯,它们的速度都不同。 而且每个电梯只能到达指定的那些楼层,而且它们都有各自的速度(即上升一层或下降一层所用的时间)。 如果一个人在某层走出电梯,要换一个电梯乘,那么他要等60秒(不管要等的是那个电梯,即使是刚刚出来的那个电梯也要等60秒)。在0层搭电梯出发时不需要等待。 一个人从0层开始,目的地是k层, 现在要搭这些电梯,问最少需多少时间。思路原创 2016-03-10 20:42:47 · 686 阅读 · 1 评论 -
uva558
题目大意: n个点,m条边,边给出的信息为:两个端点编号,以及权值,权值可为负数。判断图中是否存在负环。思路: bellmanford判断负环 spaf bfs判断负环代码: SPFA:#include <iostream>using namespace std;#include <stdio.h>#include <cstring>#include <queue>#define原创 2016-03-13 13:05:15 · 336 阅读 · 0 评论