
最短路
Accsc
这个作者很懒,什么都没留下…
展开
-
UVa247 Calling Circles (Floyd +DFS/并查集)
本题中两点A,B在一个一个calling circle中的条件是存在一条A->B的路径,也存在一条B->A的路径。可以用Floyd算法传递闭包,g[i][j] 为1表示i->j存在路径,反之表示不存在,那么AB在一个circle中等价于 g[A][B]&&g[B][A]。可以用DFS或者并查集来输出连通分量。本题的顶点以string表示,可以用STL ...原创 2018-09-04 13:27:54 · 263 阅读 · 0 评论 -
POJ-1511 Invitation Cards (SPFA+邻接表)
这个题主要的点在于数据量过大(以及题目废话过多),然后就带来了储存上的不便,用刘汝佳紫书上喜欢用的vector那样会因为直接超时,然后简单的邻接矩阵在VS中直接提示数组过大....所以一个好的方案是数组模拟链表实现邻接表。这样做比直接使用链表的好处在于节省了反复申请释放内存所消耗的可观的时间。然后对于这种百万级别的数据,简单的bellman-ford或者dijkstra应该会超时,所以这里选择...原创 2018-09-07 19:25:07 · 259 阅读 · 0 评论 -
POJ-3159 Candies( 栈优化Bellman-Ford+邻接表)
与POJ1151类似,较大输入,需要用邻接表。由于我们要求的是与顶点1最大的差值,需要先将d[]数组初始化为无穷大,然后一步步根据边的约束缩小到合理的最大值。然而这道题与众不同的一点是队列优化的Bellma-Ford会超时,栈优化就不会,网上有博客说在很多情况下栈的效率的确高于队列,我也不知道为什么....记录一下这种做法最后注意用于指向数组模拟链表的下一节点的nxt[]数组的大小应与...原创 2018-09-08 00:21:03 · 356 阅读 · 0 评论 -
LightOJ-1074 Extended Traffic (stack优化Bellman-Ford)
每个junction就是图的一个顶点,边权就是(终点的busyness-起点的busyness) ,所以可能会出现负边和负环。要用Bellman-Ford算法求单源最短路。在这里要注意,本题的图中是包含负环的,对于能求得最短路的点就求,不能到达的点和无最短路的点都要标记出来。d[i]==inf 表示i处无法到达,d[i]仍是初始值;cnt[i]>=n,代表i点已经n次入栈,如果有最短...原创 2018-09-11 20:22:37 · 298 阅读 · 0 评论