国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

SDUT 2894 C--最短路

2019-11-08 01:48:53
字體:
來源:轉載
供稿:網友

SDUT 2894 C–最短路

Time Limit: 7000MS Memory Limit: 65536KB

PRoblem Description


給出一個帶權無向圖,包含n個點,m條邊。求出s,e的最短路。保證最短路存在。

Input


多組輸入。 對于每組數據。 第一行輸入n,m(1<= n && n<=5*10^5,1 <= m && m <= 2*10^6)。 接下來m行,每行三個整數,u,v,w,表示u,v之間有一條權值為w(w >= 0)的邊。 最后輸入s,e。

Output


對于每組數據輸出一個整數代表答案。

Example Input


3 1 1 2 3 1 2

Example Output


3

Hint

spfa算法:http://blog.csdn.net/muxidreamtohit/article/details/7894298 前向星:http://blog.csdn.net/acdreamers/article/details/16902023

Submit


#include <bits/stdc++.h>#define INF 0x3f3f3f3fusing namespace std;const int MAXN = 555555;struct Edge{ int next, u, v, w;}edge[10*MAXN];int i, j, k;int N, M;int s, e, cnt;int head[MAXN];int visit[MAXN], dist[MAXN];void spfa(){ queue<int>q; while(!q.empty()) q.pop(); memset(visit, 0, sizeof(visit)); memset(dist, INF, sizeof(dist)); visit[s] = 1;//用于記錄是否在隊列中 dist[s] = 0; q.push(s); while(!q.empty())//通過隊列先進先出的特性不斷進行松弛操作 { int u = q.front(); q.pop(); visit[u] = 0; for(i = head[u]; ~i; i = edge[i].next) { int v = edge[i].v; int w = edge[i].w; if(dist[v] > dist[u]+w) { dist[v] = dist[u] + w; if(!visit[v]) { visit[v] = 1; q.push(v); } } } } printf("%d/n", dist[e]);}int main(){ while(~scanf("%d %d", &N, &M)) { int u, v, w; memset(head, -1, sizeof(head)); cnt = 0; for(i = 0; i < M; i++)//以前向星存儲輸入數據 { scanf("%d %d %d", &u, &v, &w); edge[cnt].w = w; edge[cnt].v = v; edge[cnt].u = u; edge[cnt].next = head[u]; head[u] = cnt++; edge[cnt].w = w; edge[cnt].v = u; edge[cnt].u = v; edge[cnt].next = head[v]; head[v] = cnt++; } scanf("%d %d", &s, &e); spfa(); } return 0;}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 湘阴县| 安达市| 宜都市| 九台市| 嘉定区| 开江县| 南京市| 博客| 定襄县| 东光县| 盐山县| 志丹县| 江北区| 东乡族自治县| 郧西县| 磐石市| 承德市| 漳浦县| 祁门县| 吐鲁番市| 修文县| 乌兰县| 澎湖县| 军事| 东丰县| 涞水县| 安吉县| 泌阳县| 北碚区| 彰武县| 南京市| 汽车| 长沙市| 大宁县| 谷城县| 且末县| 德清县| 溧阳市| 金湖县| 普洱| 红原县|