最短路練習2

2021-10-02 18:55:44 字數 1798 閱讀 6845

雙向建邊

注意題意就是去的路和返回來的路可能不是同一條,因為a->b和b->a的路徑長度不一樣

就是計算兩次dij,在找那個最大的就好了

#include

#include

#include

#include

using namespace std;

#include

#include

const

int inf=

0x3f3f3f3f

;const

int n=

1050

;using namespace std;

int n,m,x;

int tu[n]

[n];

int dis[n]

;int vis[n]

;void

dij(

int s)

dis[s]=0

;int minn=inf;

int v;

while

(true)}if

(v==-1

)break

; vis[v]=1

;for

(int i=

0;i}}

intmain()

memset

(vis,0,

sizeof

(vis));

dij(x)

;int tmp;

for(

int i=

0;i)for

(int i=

0;i)for

(int j=i+

1;j)memset

(vis,0,

sizeof

(vis));

dij(x)

;int maxx=

-inf;

for(

int i=

0;i) cout

}

bellman-ford演算法水題

比較easy

就是判斷有沒有負環的題目,這個是判斷有沒有正環,建議先掌握bellman演算法在看這個題,就比較好做了,bellman是常用來判斷是否有負環的

#include

#include

#include

#include

using namespace std;

#include

#include

const

int inf=

0x3f3f3f3f

;const

int n=

1050

;using namespace std;

int n,m,x;

double dis[n]

;int tol=0;

double hl[n]

;double yj[n]

;int di[n]

;int to[n]

;void

belleman_ford

(int x,

double mmm)}if

(fl)

break;}

int fl=1;

for(

int i=

0;iif(fl)

cout<<

"no\n"

<}int

main()

belleman_ford

(s,sum)

;return0;

}

最短路練習3

mpi maelstrom 裸題 坑你的題意 輸入長得很難看 無多組因為圖是雙向的,所以只給了圖矩陣的下三角 自己到自己永遠是0,如果這倆點不同就用x來代替 可以用atoi 函式來很好的處理 char str變int 如果str 0 x 就把對應邊設定為inf inf取值0x3f3f3f3f 輸出也...

練習 最短路徑 深度搜尋

乙個根據深度搜尋模型寫的最短路徑 參考如下 啊哈演算法 4.2 p81 最短路徑 public class shortpath 向右走 向下走 向左走 向上走 地圖是乙個5 5的矩陣 public static int x 5,y 5 定義終點 public static int ex 2,ey 2...

專題訓練2 最短路

floyed演算法 o n 3 dijkstra 適合稠密圖 spfa 優點是可以處理負權值,但是不能處理負環,使用前最好先判斷是否有負環 適合稀疏圖 還不熟 會用到的存圖方法 鄰接矩陣 鄰接表前向星 待學 1.mpi maelstrom poj1502 無向圖 題目在此 一開始看錯了題意,以為需要...