雙向建邊
注意題意就是去的路和返回來的路可能不是同一條,因為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 無向圖 題目在此 一開始看錯了題意,以為需要...