15,440
社区成员
发帖
与我相关
我的任务
分享
#include<iostream>
#include<vector>
using namespace std;
int main() {
const int MAX = 100000;
int n, m, a, b, c;
while (cin >> n >> m) {
vector<vector<int>> map(n, vector<int>(n, MAX));
for (int i = 0; i < m; ++i) {
cin >> a >> b >> c;
map[a][b] = map[b][a] = c;
}
cin >> a >> b;
vector<int> cost = map[a];
for (int k = 0; k < n; ++k)
for (int j = 0; j < n; ++j)
if (cost[k] + map[k][j] < cost[j])
cost[j] = cost[k] + map[k][j];
cout << (cost[b] == MAX ? -1 : cost[b]) << endl;
}
return 0;
}
#include<iostream>
#include<vector>
using namespace std;
int main() {
int n, m, a, b, c;
while (cin >> n >> m) {
vector<vector<int>> map(n, vector<int>(n,-1));
for (int i = 0; i < m; ++i) {
cin >> a >> b >> c;
map[a][b] = map[b][a] = c;
}
cin >> a >> b;
vector<int> cost = map[a];
for (int k = 0; k < n; ++k)
for (int j = 0; j < n; ++j)
if (cost[k]>0&&map[k][j]>0&&cost[k] + map[k][j] < cost[j])
cost[j] = cost[k] + map[k][j];
cout << cost[b] << endl;
}
return 0;
}