洛谷P2384 最短路 題解

2022-04-06 03:26:03 字數 735 閱讀 7081

請你求出從1到n的最短路徑,其中最短路徑☞這條路經過的邊的權值的乘積。

很顯然,這也是一道經典的單元最短路問題,首先我們可以考慮使用floyd,顯然,這是乙個比較無腦簡單的最短路演算法,而且包治負邊權等等。但是時間複雜度太高,可達o(n

3)o(

n3).這道題目看起來可能是剛剛好,但據說會被卡常數呀。

再就是可以用dijkstra,但此題不保證邊權不為負,但dijkstra還是奇蹟般的過了,不知道是不是因為乘積的問題?

最後可以考慮spfa了,這是乙個傳說中noip最愛卡的最短路演算法,但用在這道題還是可以的。

(標準寫法,值得一學

#include#include#includeusing namespace std;

struct edge

;priority_queue,vector>,greater> >q;

vectore[1005];

int dis[1005],vis[1005];

int main()

for(int i=1;i<=n;i++)

dis[1]=1;

q.push(make_pair(1,1));

while(!q.empty())

{ int x=q.top().second;

q.pop();

if(vis[x]==1)

continue;

vis[x]=1;

for(int i=0;i完結撒花~

洛谷P2384 最短路 題解

請你求出從1到n的最短路徑,其中最短路徑 這條路經過的邊的權值的乘積。很顯然,這也是一道經典的單元最短路問題,首先我們可以考慮使用floyd,顯然,這是乙個比較無腦簡單的最短路演算法,而且包治負邊權等等。但是時間複雜度太高,可達o n3 o n 3 o n3 這道題目看起來可能是剛剛好,但據說會被卡...

洛谷 P2384 最短路

p2384 最短路 題目提供者bosh 標籤圖論 最短路難度普及 提高 狗哥做爛了最短路,突然機智的考了bosh一道,沒想到把bosh考住了 你能幫bosh解決嗎?他會給你100000000000000000000000000000000000 10金幣w 題目描述 給定n個點的帶權有向圖,求從1到...

P2384 最短路 洛谷

狗哥做爛了最短路,突然機智的考了bosh一道,沒想到把bosh考住了.你能幫bosh解決嗎?他會給你100000000000000000000000000000000000 10金幣w 給定n個點的帶權有向圖,求從1到n的路徑中邊權之積最小的簡單路徑。輸入格式 第一行讀入兩個整數n,m,表示共n個點...