最短路&强连通分量
Blaze Jack
这个作者很懒,什么都没留下…
展开
-
POJ 2387 Til the Cows Come Home(最短路径)
题意:给出T条有权值的边,求从节点1到节点n的最短路径。思路:用了迪杰斯特拉算法(dijkstra),模板题。注意:输入的边有可能是重边的,就是重复输入同一个边,但是权值不一样,当然是取最小的。还有就是边是无向的。#include#include#includeusing namespace std;#define inf 1e9int d[1100],w[1005][1原创 2017-08-22 18:14:30 · 203 阅读 · 0 评论 -
牛客练习赛17 -- E(TSP+spfa)
链接:https://www.nowcoder.com/acm/contest/109/E来源:牛客网写了好久终于过了,#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>#include<cmath>#include<vector&g...原创 2018-05-05 13:35:50 · 315 阅读 · 0 评论 -
Wannafly挑战赛14 --C题(tarjan缩点)
链接:https://www.nowcoder.com/acm/contest/81/C来源:牛客网#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>#include<cmath>#include<vector>#includ...原创 2018-04-21 12:24:42 · 174 阅读 · 0 评论 -
HDOJ 1269 迷宫城堡-(强连通分量)
为了训练小希的方向感,Gardon建立了一座大城堡,里面有N个房间(NInput输入包含多组数据,输入的第一行有两个数:N和M,接下来的M行每行有两个数a和b,表示了一条通道可以从A房间来到B房间。文件最后以两个0结束。 Output对于输入的每组数据,如果任意两个房间都是相互连接的,输出"Yes",否则输出"No"。 Sample Input3 31 22 3原创 2017-10-11 23:35:49 · 357 阅读 · 0 评论 -
蓝桥杯 最短路 spfa
问题描述给定一个n个顶点,m条边的有向图(其中某些边权可能为负,但保证没有负环)。请你计算从1号点到其他点的最短路(顶点从1到n编号)。输入格式第一行两个整数n, m。接下来的m行,每行有三个整数u, v, l,表示u到v有一条长度为l的边。输出格式共n-1行,第i行表示1号点到i+1号点的最短路。样例输入3 31 2 -12 3 -13 1 2样例输出...原创 2017-12-02 14:03:12 · 200 阅读 · 0 评论 -
HDU 1233 还是畅通工程(prim)
题意:求最小生成树,注意未给距离的点之间的距离要设置为无穷大。#include#include#include#include#include#includeusing namespace std;const int N=105;#define inf 0x3f3f3f3fint ma[N][N],vis[N],dis[N],cost;int n;void prim(原创 2017-09-01 23:16:45 · 169 阅读 · 0 评论 -
HDU 1102 Constructing Roads(prim求最小生成树)
题意:给出各个点的之间的距离,用最少的路将这些点连通起来。思路:题目其实就是求最小生成树,我用了prim。那些已经连通的点将距离设置为0。#include#include#include#include#include#includeusing namespace std;const int N=105;#define inf 0x3f3f3f3fint ma[N原创 2017-09-01 23:12:01 · 180 阅读 · 0 评论 -
POJ2502 subway(spfa)
题意:给出多条地铁的路线以及人和车的速度,求起点到终点的最短时间(可以在任意站点上下车)。思路:关键在于人和车速度不同的处理,因为人走路比地铁慢,所以在输入地铁站点的时候,就可计算出每两个站点之间花费的时间,不会影响到后面的松弛操作。之后spfa就可以求出答案。#include#include#include#include#include#includeusing原创 2017-09-01 22:58:24 · 218 阅读 · 0 评论 -
POJ3169差分约束(SPFA+差分约束)
思路:假设i两只奶牛可以站在同一个位置,但是必须升序排列,所以有差分约束方程D[i] - D[i+1] 对于两只有好感的奶牛有差分约束方程D[j] -D[i ]对于两只反感的奶牛有差分约束方程D[i] - D[j] 有了约束方程就可以spfa;#include#include#include#include#includeusing namespace std;原创 2017-08-30 22:34:08 · 266 阅读 · 1 评论 -
LightOJ 1074 Extended Traffic(SPFA+负环)
题意:a到达b城市所需费用为两地人数差的三次方,注意费用可能为负数,求到各个点所需费用。思路:因为费用可能为负数,所以可能存在负环。用spfa判断即可。#include#include#include#includeusing namespace std;const int MAX=0x3f3f3f3f,mx=210;int dis[mx],c[mx],r[mx],vi原创 2017-08-30 22:26:27 · 204 阅读 · 0 评论 -
poj 1860 Currency Exchange (spfa)
题意:给出各种货币之间的汇率,还有每次兑换的手续费。求这个人在经过多次兑换后,能否使自己的钱变多,注意变多是指钱的种类不变,数目变多。思路:spfa算法会比较好理解,按照题意只要找到正环,那么你的钱就会越换越多,最后肯定是可以换回本来的那种货币,不管手续费多高没事。因为数据小,我用了邻接矩阵储存数据,还有另外一种邻接表的方法我一并贴出来邻接矩阵#include#include原创 2017-08-23 15:58:14 · 213 阅读 · 0 评论 -
poj 2253 Frogger(floyd)
题意:给出石头的坐标,求青蛙的最大跳跃距离。换句话说,青蛙的跳跃能力至少多远才能跳到目的地。思路;将佛罗德算法的松弛条件修改一下就可以。#include#include#include#includeusing namespace std;double w[205][205];int x[205],y[205];int main(){ int n,ca=1; w原创 2017-08-26 21:56:33 · 168 阅读 · 0 评论 -
POJ-1847 Tram( 最短路 )
Tram network in Zagreb consists of a number of intersections and rails connecting some of them. In every intersection there is a switch pointing to the one of the rails going out of the intersection. When the tram enters the intersection it can leave only原创 2017-08-22 18:37:32 · 264 阅读 · 0 评论 -
POJ 3268 Silver Cow Party (dijkstra算法)
题意:有n只牛要去某个牛的家里聚会,开完聚会回家。求哪只牛走的路径最长。因为是有向图,所以牛出门与回家的路不一定相同。思路:牛回家的路很明显就是dijkstra就可以算,那么牛出门到指定地点的话,我们可以把边存成反向的,看成是牛从指定地点到家,所以两次dj就可以算出来。#include<iostream>#include<cstring>#inc...原创 2017-08-22 18:22:21 · 205 阅读 · 0 评论 -
hdu4738(求最小割桥)
注意重边的处理,还有数组初始化以及结构体的大小开辟。#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>#include<cmath>#include<vector>#include<queue>#inclu原创 2018-08-31 19:04:35 · 180 阅读 · 0 评论