帮熟人做网站如何收费济南哪家做网站
参考资料:
(这里鸣谢代码随想录的分享)
Dijkstra算法,你的最短路来了!(认识dijkstra)
Dijkstra算法,求最短路还能更快!(堆优化版)
个人总结的代码
下面的代码可以AC P4779 【模板】单源最短路径(标准版) - 洛谷
相信你通过上面的参考资料或者下面的代码总结属于你自己的dijkstra
#include <bits/stdc++.h> using namespace std;
class Dist{
public: int u; int d; Dist(int u_, int d_):u(u_),d(d_){} bool operator < (const Dist &other) const{ return d > other.d;// 小顶堆 }
};
void solve() { int n, m, start; // n为顶点 m为边数 cin >> n >> m >> start; priority_queue<Dist> q; vector<Dist> g[n + 1]; for (int i = 0; i < m; ++i) { int u, v, w; cin >> u >> v >> w; g[u].push_back(Dist(v, w)); } vector<bool> vis(n + 1, false); vector<int> dis(n + 1, INT_MAX); q.push(Dist(start, 0)); dis[start] = 0; while (!q.empty()) { Dist cur = q.top(); q.pop(); int u = cur.u; if(vis[u]) continue; vis[u] = true; for(auto &next:g[u]){ int v = next.u; if(dis[v] > dis[u] + next.d){ dis[v] = dis[u] + next.d; q.push(Dist(v, dis[v])); } } } for(int i = 1;i<=n;i++){ cout<<dis[i]<<" "; } } int main() {
#ifdef ACM_LOCAL freopen("data.in", "r", stdin);
// freopen("data.out", "w", stdout);
#endif int T = 1;
// cin >> T; while (T--) { solve(); } return 0;
}
题单
会不断更新的
- Heavy Transportation (flowus.cn)
- 模版 P4779 【模板】单源最短路径(标准版) - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
- [ABC218F] Blocked Roads (flowus.cn)
- [ABC237E]滑雪 — [ABC237E] Skiing (flowus.cn)
- 2.蓝桥王国 - 蓝桥云课 (lanqiao.cn)
- 743. 网络延迟时间
- 3419. 图的最大边权的最小值
- L2-001 紧急救援 - 团体程序设计天梯赛-练习集