国产探花免费观看_亚洲丰满少妇自慰呻吟_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;}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 巴楚县| 隆昌县| 宣威市| 琼海市| 邹城市| 双辽市| 金华市| 白朗县| 南郑县| 洪泽县| 姜堰市| 利川市| 周口市| 昔阳县| 汝南县| 上思县| 托克逊县| 六枝特区| 西乡县| 莱阳市| 阿勒泰市| 紫金县| 绍兴县| 唐河县| 内乡县| 凤冈县| 乌鲁木齐市| 通榆县| 南昌县| 兴仁县| 南江县| 崇左市| 尉氏县| 恭城| 江门市| 腾冲县| 新干县| 云龙县| 宁强县| 平利县| 海淀区|