Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
193900 luckypet 地图 C++ 解答错误 0 0 MS 244 KB 1229 2025-05-27 14:39:40

Tests(0/10):


#include <iostream> #include <vector> #include <queue> #include <climits> using namespace std; const int MAXN = 1501; vector<vector<pair<int, int>>> adj; vector<int> dist; void dijkstra(int src) { priority_queue<pair<int, int>, vector<pair<int, int>>, greater<pair<int, int>>> pq; pq.push({0, src}); dist[src] = 0; while (!pq.empty()) { int u = pq.top().second; pq.pop(); for (auto &edge : adj[u]) { int v = edge.first; int weight = edge.second; if (dist[u] + weight < dist[v]) { dist[v] = dist[u] + weight; pq.push({dist[v], v}); } } } } int main() { int n; cin >> n; adj.resize(n); dist.resize(n, INT_MAX); for (int i = 0; i < n; ++i) { for (int j = 0; j < n; ++j) { int weight; cin >> weight; if (i != j && weight != -1) { adj[i].push_back({j, weight}); } } } dijkstra(0); // 从A点(编号为0)开始 // 输出结果 for (int i = 1; i < n; ++i) { cout << dist[i] << endl; } return 0; }


测评信息: