본문 바로가기

알고리즘/최단 경로6

백준 11403번 : 경로 찾기 문제 링크 : www.acmicpc.net/problem/11403 내 풀이(2021.1.27.) : #include #include #include #include using namespace std; #define MAX_V 100 // 노드 개수의 최대값 int V; // V : 노드의 개수 vector VV_info(MAX_V + 1, vector(MAX_V + 1, INT_MAX)); // 모든 노드에서 모든 노드까지의 최단 거리 void floyd_warshall() { // 플로이드 워셜 // 점화식 수행 for (int k = 1; k 2021. 1. 27.
백준 2224번 : 명제 증명 문제 링크 : www.acmicpc.net/problem/2224 내 풀이(2021.1.26.) : #include #include #include #include using namespace std; #define MAX_V 'z' - 'A' + 1 // 노드 개수의 최대값 int V, E; // V : 노드의 개수, E : 간선의 개수 vector VV_info(MAX_V + 1, vector(MAX_V + 1, INT_MAX)); // 모든 노드에서 모든 노드까지의 최단 거리 void floyd_warshall() { // 플로이드 워셜 // 자기 자신에게 가는 간선값은 0 for (int i = 1; i a >> x >> b; VV_info[a[0] - 'A' + 1][b[0] - 'A' + 1].. 2021. 1. 26.
백준 11404번 : 플로이드 문제 링크 : www.acmicpc.net/problem/11404 풀이에 참고한 링크 : www.acmicpc.net/board/view/32191 내 풀이(2021.1.26.) : #include #include #include #include using namespace std; #define MAX_V 100 // 노드 개수의 최대값 int V, E; // V : 노드의 개수, E : 간선의 개수 vector VV_info(MAX_V + 1, vector(MAX_V + 1, INT_MAX)); // 모든 노드에서 모든 노드까지의 최단 거리 void floyd_warshall() { // 플로이드 워셜 // 자기 자신에게 가는 간선값은 0 for (int i = 1; i E; // 노드/간선 정보 .. 2021. 1. 26.
백준 1504번 : 특정한 최단 경로 문제 링크 : www.acmicpc.net/problem/1504 내 풀이(2021.1.25.) : 다익스트라 #include #include #include #include using namespace std; #define MAX_V 800 // 노드 개수의 최대값 int V, E, start_v; // V : 노드의 개수, E : 간선의 개수, start_v : 시작 노드 vector VE_info[MAX_V + 1]; // V개의 노드들에 대한 쌍 (second = 특정 노드로부터 first번 노드까지의 간선값) vector shortest_distance(MAX_V + 1, INT_MAX); // 시작 노드로부터 V개의 도착 노드들까지의 최단 거리 void dijkstra(int start_v).. 2021. 1. 25.