memset在求最短路徑中的使用

2021-10-09 02:34:05 字數 921 閱讀 2651

int a[20]

;menset

(a,0

,sizeof

(a))

,

第乙個引數a表示陣列a[20]的陣列名,也是該陣列的首位址;

第二個引數0表示接下來要給陣列所賦的值;

第三個引數表示從首位址開始需要賦值為0的長度,sizeof(a)表示整個陣列的長度為20 ✖ sizeof(int)=80;也就是前80個位元組變成了0。

我i們知道如果u,v之間沒有邊,w[u][v]=無窮大;所以首先我要將陣列中的值初始化為無窮大。

如果是使用ox7fffffff,那麼下面的情況,最大值加乙個數就會溢位。

if

(d[u]

+w[u]

[v]< d[v]

) d[v]

=d[u]

+w[u]

[v];

隨意我們可以使用ox3f3f3f3f來代替,這個數的數量級也是10^9,而且滿足0x3f3f3f3f+0x3f3f3f3f=2122219134滿足條件。

#include

using

namespace std;

intmain()

;memset

(s,0x3f

,sizeof

(s))

;for

(int i =

0; i <

sizeof

(s)/

sizeof

(int

);i++

)return0;

}```cpp

輸出為

1061109567

1061109567

1061109567

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

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

求最短路徑

從源點到終點的路徑可能存在三種情況 1.沒有路徑 2.只有一條路徑 3.有多條路徑 思路 按照路徑長度遞增的次序從源點到終點的路徑。假設gra ph graph graph 為有向網的鄰接矩陣,s ss為已找到最短路徑結點的集合,其初始狀態為只含乙個頂點,即源點。另設乙個一維陣列dis t n di...

求最短路徑(dijkstra)

因為要做一道題牽扯到最小路徑的演算法,所以就看了看締結斯特拉演算法。看了演算法導論上面的介紹不明白,只好下了乙個 自己去看。單源圖最短路徑求法 int dijkstra int from,int to int map n s u 1 for i 0 i 看了之後自己總結的一點點的經驗 締結斯特拉演算...