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

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

SDUT 2143 - 圖結構練習——最短路徑(dijkstra+模板)

2019-11-08 18:39:28
字體:
來源:轉載
供稿:網友

題目鏈接


http://acm.sdut.edu.cn/onlinejudge2/index.php/Home/Index/PRoblemdetail/pid/2143.html

題目大意


就是求一個帶權無向圖的最短路徑。

解題過程


之前看啊哈算法學了下dijkstra,然后嫌麻煩一直沒用過。現在看了個視頻才發現,用優先隊列優化后,非常好用,比SPFA還容易寫,于是放出來做個模板

題目分析


AC代碼


#include<bits/stdc++.h>using namespace std;const int MAX = 100+10;vector<pair<int, int> > edges[MAX];int d[MAX];int main(){ int n, m; while (~scanf("%d %d", &n, &m)) { for (int i = 1; i <= n; i++) { edges[i].clear(); d[i] = 1e9; } for (int i = 0; i < m; i++) { int u, v, w; scanf("%d %d %d", &u, &v, &w); edges[u].push_back(make_pair(v, w)); edges[v].push_back(make_pair(u, w)); } int s = 1, t = n; priority_queue<pair<int, int> >q; d[s] = 0; q.push(make_pair(-d[s], s)); while (!q.empty()) { int u = q.top().second; q.pop(); for (int i = 0; i < edges[u].size(); i++) { int v = edges[u][i].first; if (d[v] > d[u] + edges[u][i].second) { d[v] = d[u] + edges[u][i].second; q.push(make_pair(-d[v], v)); } } } if (d[t] == 1e9) printf("-1/n"); else printf("%d/n", d[t]); }}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 海安县| 根河市| 广宗县| 临桂县| 安岳县| 犍为县| 邹平县| 南宫市| 彭山县| 丹棱县| 罗甸县| 黄龙县| 昌黎县| 通江县| 上栗县| 崇礼县| 翼城县| 广安市| 漳浦县| 甘肃省| 内乡县| 高尔夫| 建阳市| 北流市| 沙田区| 潮州市| 隆德县| 四平市| 白山市| 乌鲁木齐县| 青龙| 五家渠市| 通化县| 永仁县| 遂溪县| 交口县| 汝阳县| 阿瓦提县| 隆尧县| 班玛县| 曲沃县|