国产探花免费观看_亚洲丰满少妇自慰呻吟_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]); }}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 尼勒克县| 资阳市| 光泽县| 永定县| 土默特右旗| 盐源县| 大荔县| 阜南县| 仲巴县| 开化县| 榆中县| 固始县| 蒙自县| 镇宁| 固安县| 定远县| 抚州市| 崇左市| 济阳县| 南丰县| 西青区| 左云县| 门头沟区| 淳安县| 怀来县| 平利县| 北海市| 兴城市| 汨罗市| 瓦房店市| 宜宾县| 大同县| 仙桃市| 秀山| 通化县| 惠安县| 奉新县| 襄垣县| 施秉县| 吉安市| 宣威市|