最短路 自己覺得較快的(沒有用棧優化的)

2021-10-06 18:22:50 字數 1885 閱讀 7052

先附上**

#include

#include

#include

#include

#include

#include

#include

#include

#define n 999999

using

namespace std;

intmain()

int u[n]

, v[n]

;double w[n]

;//放權值的平方

int m;

scanf

("%d"

,&m)

; m *=2

;for

(i =

0; i < m; i++

)// for(i = 0; i < m; i++)

//

int s, t;

scanf

("%d %d"

,&s,

&t);

double dis[n]

;for

(i =

1; i <= n; i++

) dis[s]=0

;for

(i =

0; i < n -

1; i++)}

if(check ==0)

break;}

printf

("%.2lf\n"

, dis[t]);

return0;

}

問題:平面上有n個點(n<=100),每個點的座標均在-10000~10000之間。其中的一些點之間有連線。若有連線,則表示可從乙個點到達另乙個點,即兩點間有通路,通路的距離為兩點間的直線距離。現在的任務是找出從一點到另一點之間的最短距離。

1.第一次沒有加memset的標頭檔案

2.把公式理解錯了,以為是所有平方和後的開放(錯的)

3.理解最後的每邊鬆弛有些問題

4.n定義的太小了,因為咱也不知道有多少邊

哎,細心呀,這個演算法還是較快的,也算是好理解的,是乙個總結出的**

比鏈式前向星儲存好記一些吧!!

#include

#include

#include

#include

#include

#include

using

namespace std;

intmain()

, book[

200000]=

;int que[

200000]=

, head =

1, tail =1;

int inf =

99999999

;for

(i =

1; i <= n; i++

) dis[1]

=0;for

(i =

1; i <= n; i++

)for

(i =

1; i <= n; i++

)for

(i =

1; i <= m *

2; i++

) que[tail]=1

; tail++

; book[1]

=1;while

(head < tail)

} k = next[k];}

book[que[head]]=

0;head++;}

printf

("%d\n"

, dis[n]);

}return0;

}

最短路 求最長最短路,求最短路的路徑

hdu 1595 find the longest of the shortest include include include include include include include include include include include include include defi...

A 最簡單的最短路 最短路徑

szu 2015 winter training day 6 a 最簡單的最短路 time limit 1000msmemory limit 32768kb64bit io format i64d i64u submit status practice hdu 1874 description 某省...

自己覺得重要的sql語句

查詢表資料 select from tablename 修改表字段值 update tablename set column newval where columnid id 刪除比表中某一字段值 delete from tablename where columnid id 刪除 表資料和表結構 ...