-
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475#include<iostream>#include<vector>#include<queue>#include<utility>using namespace std;int tc,n, d, c;vector<pair<int,int> > map[20000];int visit[20000];int dist[20000];int node, edge;int INF = 987654321;int mapp[200][200];void dijkstra(int start) {visit[start] = 0;priority_queue<pair<int, long long> > pq;pq.pop();if (visit[current] < distance) continue;for(int i = 0; i< map[current].size(); i++){int next = map[current][i].first;int nextDistance = distance + map[current][i].second;if (nextDistance < visit[next]) {visit[next] = nextDistance;dist[next] = current+1;}}}}int main() {ios_base::sync_with_stdio(0);cin.tie(0);cin >> node >> edge;for (int i = 0; i < edge; i++) {int a, b, c;cin >> a >> b >> c;map[a - 1].push_back({b-1,c});map[b - 1].push_back({ a - 1,c });}for(int i = 0; i < node;i++){for (int i = 0; i < node; i++) {visit[i] = INF;}dijkstra(i);for (int j = 0; j < node; j++) {if (visit[j] != INF && i != j) {mapp[j][i] = dist[j];}}}for(int i = 0;i < node; i++){for(int j = 0; j < node; j++){if(i != j)cout<<mapp[i][j]<<' ';else cout<<'-'<<' ';}cout<<'\n';}return 0;}http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-decoration:none">Colored by Color Scripter
다익스트라 문제, 다익스트라알고리즘 복습하면서 풀어본 문제
다익스트라와 최소신장트리는 자꾸까먹는것같아서 복습차원에서 다시푼문제
'백준알고리즘' 카테고리의 다른 글
맥주 마시면서 걸어가기 (0) 2019.10.01 (4991) 로봇 청소기 (0) 2019.10.01 네트워크 연결 (0) 2019.09.29 최소비용 구하기 (0) 2019.09.29 최단 경로 (0) 2019.09.29