
最短路
文章平均质量分 56
ws_yzy
一如OI情似海
展开
-
BZOJ2662: [BeiJing wc2012]冻结
这个题和BZOJ飞行路线差不多堆优化 dijkstra拆点 hash一下#include#include#include#include#include#include#include#include#include#include#include#define pa pairusing namespace std;int dis[55][55],d[555原创 2015-10-01 16:39:40 · 661 阅读 · 0 评论 -
BZOJ2763: [JLOI2011]飞行路线
spfa 多记录一层状态 dis[x][i]表示走到x这个点免费走了i次#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;int dis[11111][11],d[111111][3],head[11原创 2015-10-01 15:37:31 · 678 阅读 · 0 评论 -
BZOJ1880: [Sdoi2009]Elaxia的路线|dijksrtra|暴力
貌似这题正解是spfa后 什么拓扑排序其实完全不用酱紫……先用dijkstra求出s1 s2 e1 e2到其他点的单元最短路 的四个数组ds1 ds2 de1 de2然后枚举所有的 “路径”这个路径可以是包括多条边 所以不用拓扑排序枚举每一对点i j 如果这两个点都在两个最短路上 那么这两个点之间的最短路一定可以作为重叠部分 然后这两个点之间的最短路可以用已求得原创 2015-10-04 20:57:05 · 948 阅读 · 2 评论 -
SPFA判负环|BFS|DFS
判断给定的有向图中是否存在负环。 利用 spfa 算法判断负环有两种方法: 1) spfa 的 dfs 形式,判断条件是存在一点在一条路径上出现多次。 2) spfa 的 bfs 形式,判断条件是存在一点入队次数大于总顶点数。 代码如下: 法 1 (spfa 的 dfs 形式):转载 2015-11-05 07:33:56 · 6812 阅读 · 0 评论 -
BZOJ 1050: [HAOI2006]旅行comf|动点spfa
用Kruscal和并查集做似乎很显然,动点spfa似乎也是裸题。 按边权把边从大到小排序,枚举不断加边,将当前边的两端点入队spfa,不断更新mn数组(在当前边的情况下从起点到每一个点所经过的最大边的最小值) 因为从大到小枚举,所以当前枚举到的边肯定是最短的,然后要让最长的边最短,这就是动点spfa的精髓所在。 第一次写动点spfa之蜜汁错误之打反n,m毁一生!!!!!! woc….调了半小原创 2016-02-15 09:26:37 · 713 阅读 · 0 评论 -
1922: [Sdoi2010]大陆争霸|dijkstra
最短路大法好。Orz黄学长 设d1[x],d2[x]d1[x],d2[x]为城市x的到达时间,可进入时间 max(d1[x],d2[x])max(d1[x],d2[x])为真实的进入时间 d[x]d[x]记录城市x被多少个城市保护 每次堆中取出一个真实进入时间最小的城市 更新它所通往的城市的d1d1,保护城市的d2d2 保护城市的d–1d–1 若d=0d=0,原创 2016-03-19 07:39:25 · 1419 阅读 · 0 评论 -
4456: [Zjoi2016]旅行者|分治+最短路
每次将矩形划分成两个部分,枚举中间点跑最短路更新答案,不断递归分治#include<algorithm>#include<iostream>#include<cstdlib>#include<cstring>#include<cstdio>#include<vector>#include<cmath>#include<queue>#include<ctime>#include<se原创 2016-04-18 15:13:50 · 1368 阅读 · 2 评论