목록그래프 탐색 (3)
레야몬
1. 문제 각 테스트케이스 첫째 줄 장소의 수 \(N(2 \leq N \leq 500)\)과 도로의 수 \(M(1 \leq M \leq 10^{4})\)가 주어짐. 0~N-1까지 장소의 번호가 매겨지는데 -2- 시작점 S, 도착점 D \((S \neq D, 0 \leq S, D V 도로는 최대 한 개이며 U->V는 V->U와 다르다. 입력의 마지막 줄에는 0이 두 개가 있다. 각 테스트케이스에 대해 거의 최단 경로 길이를 출력하며 없는 경우에는 -1을 출력하라 2. 재정의 최단 경로에 포함되는 도로 제외 최단 경로 3. 해결방법 - ..
#include #include #include #define FOR(i, k, N) for(int i=k; i> V >> E; FOR(i, 1, E) { int a, b; cin >> a >> b; Vertex[a].push_back(b); Vertex[b].push_back(a); } } int dfs(int no, int par) { discovered[no] = ++cnt; //발견된 순서(1부터 시작) int ret = discovered[no]; FOR(i, 1, Vertex[no].size()) { int next = Vertex[no][i-1]; //탐색할 노드 if(next == par) continue; if(!discovered[next]) { //탐색이 아직 되지 않았으면 int s..
#include #define MAX_GRAPH_SIZE 1009 using namespace std; int graph[MAX_GRAPH_SIZE][MAX_GRAPH_SIZE]; //행렬을 이용한 그래프 구현 int N, M; //정점의 개수 N, 간선의 개수 M int cnt; //연결 요소의 개수 void f(int u) { if (!u) { //초기상태인가? for (int i=1; i> v; graph[u][v]=1, graph[v][u]=1; } f(0); for (int i=1; i [C++언어] 11279번 최대 힙 - 우선순위 큐 #include #include #include #include using namespace std; priority_queue , less > max_pq; ..