26991: 带负权的单源最短路

原创 2015年07月10日 09:46:27
题目描述

 输入一个有向网络图,边的权值可正可负,求顶点到其他各点的最短路。


输入

第一行输入n,表示n个结点(默认顶点为0号)

接下来输入n*n矩阵。表示各边的权值。


输出

输出一行,如果有负权回路输出“not possible”,否则输出顶点0到其他点的最短路,输出答案之间仅有一个空格,结尾没有空格。


样例输入
4
0 0 -3 0
2 0 0 0
0 -1 0 -4
0 0 0 0

样例输出
not possible

program p26991;
var
 w:array[0..1000,0..1000]of longint;
 dist:array[0..1000]of longint;
 n,x,i,j,k:longint;
 change:boolean;
begin

 readln(n);
 for i:=0 to n-1 do
  for j:=0 to n-1 do
   begin
    read(x);
    if (x=0)and(i<>j)then w[i,j]:=maxint else w[i,j]:=x;
   end;
 for i:=1 to n do
  if w[i,j]=maxint then dist[i]:=maxint else dist[i]:=w[0,i];
  dist[0]:=0;
  for k:=0 to n-1 do
   for j:=0 to n-1 do
    for i:=0 to n-1 do
     if (w[i,j]<>maxint)and(dist[i]<>maxint)and(dist[j]>dist[i]+w[i,j])
     then
      dist[j]:=dist[i]+w[i,j];
 change:=true;

 for i:=0 to n-1 do
  for j:=0 to n-1 do
   if dist[j]>dist[i]+w[i,j]
   then change:=false;
 if not change then
   writeln('not possible')
  else
   for i:=1 to n-2 do
    write(dist[i],' ');
 if change then
    writeln(dist[n-1]);

end.

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

单源最短路算法

  • 2013年06月04日 17:25
  • 1KB
  • 下载

图结构_最短路_Dijkstra(单源最短路,不能有负边)

数据结构:邻接表Map 算法功能:求一点到其他点的最短路径,不能有负边 代码算法思想: int Dijkstra(int st,int en,int Map[maxn][maxn],int num)/...
  • cbcbcbz
  • cbcbcbz
  • 2017年03月16日 16:09
  • 124

正权图单源最短路(SSSP)- Dijkstra算法

引言:DAG上的最短路可以用dp解得,容易得到状态转移方程。但如果图中可以有环,就要使用其他算法了。这里先考虑边权均为正的最短路问题。Contents:一、 普通的dijkatra实现  O(n2)二...
  • tclh123
  • tclh123
  • 2011年04月05日 22:00
  • 2275

可以处理负权的单源最短路径的SPFA算法带图详解(自己画的图)

算法大致流程是用一个队列来进行维护。 初始时将源加入队列。 每次从队列中取出一个元素,并对所有与他相邻的点进行松弛,若某个相邻的点松弛成功,则将其入队。 直到队列为空时算法结束。 这个算法,简单的说...

4、物流运输(trans.pas/c/cpp) 单源最短路+dp

4、物流运输(trans.pas/c/cpp)     【问题描述】     物流公司要把一批货物从码头A运到码头B。由于货物量比较大,需要n天才能运完。货物运输过程中一般要转停好几个码头。物流公...

SPFA单源最短路详解

 适用范围:给定的图存在负权边,这时类似Dijkstra等算法便没有了用武之地,而Bellman-Ford算法的复杂度又过高,SPFA算法便派上用场了。 我们约定有向加权图G不存在负权回路,即最...

无权图的单源最短路问题

最短路径问题的抽象 在网络中,求两个不同顶点之间的所有路径中,边的权值之和最小的那一条路径 这条路径就是两点之间的最短路径(Shortest Path) 第一个顶点为源点(Source) 最后一个顶点...

单源最短路径算法 Bellman-Ford && SPFA 及 最短路算法统一归纳

为避免各种求最短路的方法混淆,开始之前先做个归纳。① BFS - 无权图 (有向或无向,有环或无环)- 对于树的bfs,无需判重,因为根本不会重复。对于图的bfs,要有vis[]进行判重,不然一个点可...
  • tclh123
  • tclh123
  • 2011年04月06日 18:16
  • 2159

单源最短路(Bellman_Ford)

#include #include #include #include #define INF 0x7fffffff using namespace std; const int maxn ...

HDU 2544 最短路 单源Dijkstra

原题: http://acm.hdu.edu.cn/showproblem.php?pid=2544题目大意: 图中有n个点,有m条边,输入m条边的起点终点和长度,求点1到点n的最短距离。直接跑一...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:26991: 带负权的单源最短路
举报原因:
原因补充:

(最多只允许输入30个字)