最短路
LSlong127
re_reality
展开
-
Invitation Cards(SPFA+前向星反向建图)
题意:一堆人从1出发,到其他的点,然后从其他的点再回来,最短距离。和之前那个牛聚会题目一样,两次spfa。Silver Cow Party由于这题的数据已经不能用邻接矩阵来储存,所以矩阵逆置就不能用了,所以需要用前向星进行反向建图,这里用到的也是一个很巧妙地方法。我们需要在用结构体存边的信息的时候,多定一个边的起点信息,用来后面的反向建图。#include<iostream>#...原创 2019-01-31 13:01:47 · 180 阅读 · 0 评论 -
King(差分约束)
题目链接:King题意:给你几个限制条件,问你是否能构建出来一个序列(a1,a2,a3……an)满足这些条件。样例:输入4 21 2 gt 02 2 lt 21 21 0 gt 01 0 lt 00输出lamentable kingdomsuccessful conspiracy解释一下样例:多组输入第一行n(0 < n <= 100)和m(0 &l...原创 2019-06-18 17:38:36 · 188 阅读 · 0 评论 -
城市间紧急救援(Dijkstra+输出路径)
#include<bits/stdc++.h>#define inf 0x3f3f3f3fusing namespace std;const int N = 510;int vis[N];//是否用这个点更新过int ma[N][N];//存图int dis[N];//两点间最短距离int num[N];//每个点的救援队人数int numdis[N];//到每个点最...原创 2019-04-01 17:14:19 · 657 阅读 · 0 评论 -
Highway Project(双条件最短路+最小生成树的感觉,SPFA,外加一个Dijkstra优先队列)
题目链接:ZOJ - 3946 题意:t组输入,n个城市,m条边(1 ≤ N, M ≤ 105),城市有一个首都,编号为0。然后给你m条边,让你建公路,要求花费时间最小,时间相等花费最小。要求输出从0到其他点的总时间和建造公路的总花费。每条路的时间和花费都是1e5的范围。思路:一看是双条件最短路就直接敲了,但是裸双条件的话会出现一个问题,我们会把一些边重复算。所以就有点像最小生成树了QAQ…...原创 2019-04-10 20:32:21 · 282 阅读 · 0 评论 -
Cow Contest(Floyd变形)
题意:给出牛之间的强弱关系,让你确定有多少头牛能够确定其排名。题目链接Cow Contest思路:如果一头牛和其他n-1头牛都有关系的话,那么我们就可以确定它的排名。题目数据不大,直接floyd,看到别的还有这种BFS的做法([BZOJ1612][Usaco2008 Jan]Cow Contest奶牛的比赛 dfs),时间上不会差太多,毕竟数据很小,自己交了一下,对于这题的样例BFS更快一点...原创 2019-02-11 20:09:27 · 266 阅读 · 0 评论 -
Wormholes(SPFA判断负环)
#include#include#include#include#include#include#include#include#define N 5000#define inf 0x3f3f3f3fusing namespace std;struct node{int to,w,next;} s[N];int n;int tot;int vis[N];int ...原创 2019-01-29 11:37:40 · 164 阅读 · 0 评论 -
Silver Cow Party(用矩阵转置来反向建图)
题意:来自N个农场的牛去参加一个party,party位于X号农场,牛去party后还要回农场(回去的路径可以不同并且来回的路都是时间最短的),求这些牛来回所走的最长时间。思路:裸的最短路的题,Dijkstra直接盘就行#include&lt;iostream&gt;#include&lt;cstdio&gt;#include&lt;cstring&gt;#include&lt原创 2019-01-29 16:57:09 · 271 阅读 · 1 评论 -
Currency Exchange(货币转换问题 SPFA判断正环)
题意:有多种汇币,汇币之间可以交换,这需要手续费,当你用100A币交换B币时,A到B的汇率是29.75,手续费是0.39,那么你可以得到(100 - 0.39) * 29.75 = 2963.3975 B币。问s币的金额经过交换最终得到的s币金额数能否增加思路:先建图,货币就是点,两种货币之间可以兑换就是有边,然后spfa找正权回路,两个二维数组储存两种货币间的汇率和手续费。spfa过程大体还是...原创 2019-02-01 12:34:58 · 640 阅读 · 0 评论 -
Path(最短路+最小割)
题目链接:Path题意:给你一个有向图,然后删除一条边的代价是这条边的边权,问你最小付出多少代价,使得点1到n的最短路变长(或者不存在通路)。思路:题目意思也就是说要删除一些边使得原本图中的最短路不存在那么我们可以先找出图中所有的最短路,然后用这些最短路建几个新图然后对这个新图求最小割,也就是最大流,因为最小割就是最少割掉多少流量,使得源点与汇点不连通怎么构建新图呢,我们可以先对原...原创 2019-07-27 10:43:46 · 205 阅读 · 0 评论