九度OJ 浙大1008最短路徑問題

2021-07-16 07:19:28 字數 438 閱讀 6677

題目大意:

就是乙個單源最短路的問題,按照dijkstra演算法做就行了。關鍵是要除了cost最小的問題,就在(dis[ed.to]>=dis[e.to]+ed.dis)的時候更新一下就可以了,不能用有沒有訪問過該節點來判斷需不需要更新。

這題的測試資料非常水,即使你只是簡單地敲出了乙個最短路,好像也差不多能過。

#include#include#include#include#includeusing namespace std;

int n,m;

struct edge

vis[e.to] = 1;

for(ite = g[e.to].begin();ite=dis[e.to]+ed.dis)}}

}int main()

scanf("%d%d",&s,&t);

dijkstra();

cout<

九度OJ 題目1008 最短路徑問題

一題目描述 給你n個點,m條無向邊,每條邊都有長度d和花費p,給你起點s終點t,要求輸出起點到終點的最短距離及其花費,如果最短距離有多條路線,則輸出花費最少的。輸入 輸入n,m,點的編號是1 n,然後是m行,每行4個數 a,b,d,p,表示a和b之間有一條邊,且其長度為d,花費為p。最後一行是兩個數...

九度OJ 題目1008 最短路徑問題

題目描述 給你n個點,m條無向邊,每條邊都有長度d和花費p,給你起點s終點t,要求輸出起點到終點的最短距離及其花費,如果最短距離有多條路線,則輸出花費最少的。輸入 輸入n,m,點的編號是1 n,然後是m行,每行4個數 a,b,d,p,表示a和b之間有一條邊,且其長度為d,花費為p。最後一行是兩個數 ...

九度OJ 1008 最短路徑問題

題目描述 給你n個點,m條無向邊,每條邊都有長度d和花費p,給你起點s終點t,要求輸出起點到終點的最短距離及其花費,如果最短距離有多條路線,則輸出花費最少的。輸入 輸入n,m,點的編號是1 n,然後是m行,每行4個數 a,b,d,p,表示a和b之間有一條邊,且其長度為d,花費為p。最後一行是兩個數 ...