![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
图论
文章平均质量分 76
limchiang
这个作者很懒,什么都没留下…
展开
-
poj 3613 最短路变形( 恰好经过 k 条边的最短路 )
题目链接 题意:牛牛接力赛,共有 N (2 ≤ N ≤ 1,000,000) 头牛,T (2 ≤ T ≤ 100) 条连接两个路口的无向边,每个路口可以有多头牛,给定起点 s 和终点 e ,问每头牛都只跑一条无向边的最短路长度是多少? 思路:先计算分别从起点和终点到各点经过k ( 0 简单证明:虽然枚举重复边的时候剩余的边数一定要是奇数,可能有时候并不能在最短的边上来回走然后退出,原创 2013-03-04 15:57:29 · 546 阅读 · 0 评论 -
输出最短路路径
http://acm.hdu.edu.cn/showproblem.php?pid=1385 #include #include #define MAX 1000 using namespace std; int map[MAX+10][MAX+10]; //map[i][j]表示从i到j路上的花费 int tax[MAX+10]; //每个城市的过路费 int原创 2012-11-08 21:54:48 · 384 阅读 · 0 评论 -
水题练Dijkstra的堆优化
http://acm.hdu.edu.cn/showproblem.php?pid=2544 #pragma warning (disable:4786) #include #include using namespace std; #define INF 0x3F3F3F3F struct Edge{ int v; int dis; }; int n,m; int di原创 2012-10-10 19:32:05 · 536 阅读 · 0 评论 -
prim + 优先队列
对于最小生成树,有两种算法可以解决。一种是Prim算法,该算法的时间复杂度为O(n²),与图中边数无关,该算法适合于稠密图,而另外一种是Kruskal,该算法的时间主要取决于边数,它较适合于稀疏图。 #define nMAX 2003 #define INF 0x3ffffff int map[nMAX][nMAX]; /** 节点数 */ int n; /** 是否已加入集合, v原创 2013-03-05 21:53:09 · 649 阅读 · 0 评论 -
可处理负权边的两个最短路算法
1.Bellman-Ford 算法 BellmanFord(G,s) for i = 0 to n-1 do dist[i]= ∞ Pred[i]= 0 dist[s]=0 for k = 1 to n-1 do foreach ∈ do if do foreach ∈ do if do原创 2012-10-06 14:30:34 · 495 阅读 · 0 评论 -
poj 3463 最短路数目+次短路数目
http://poj.org/problem?id=3463 题目大意:求源点S到终点T的最短路的数量和比最短路长1的数量。 解题思路:我们可以利用dijstra算法的思想,只需在其中进行一些改进即可。可以先定义一个二维的数组dist[N][2]。dist[i][0]代表源点S到点i的最短路,dist[i][1]代表源点S到点i的次短路。初始化dist[S][0]=0,其余的都初始原创 2012-10-12 22:21:16 · 685 阅读 · 0 评论