請你求出從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個點...