https://www.acmicpc.net/problem/24480
24480๋ฒ: ์๊ณ ๋ฆฌ์ฆ ์์ - ๊น์ด ์ฐ์ ํ์ 2
์ฒซ์งธ ์ค์ ์ ์ ์ ์ N (5 โค N โค 100,000), ๊ฐ์ ์ ์ M (1 โค M โค 200,000), ์์ ์ ์ R (1 โค R โค N)์ด ์ฃผ์ด์ง๋ค. ๋ค์ M๊ฐ ์ค์ ๊ฐ์ ์ ๋ณด u v๊ฐ ์ฃผ์ด์ง๋ฉฐ ์ ์ u์ ์ ์ v์ ๊ฐ์ค์น 1์ธ ์
www.acmicpc.net
์ธ์ ๋ฆฌ์คํธ, DFS
* ์ฃผ์
1. ๋ฌธ์ ์์ ๋์จ ์๊ณ ๋ฆฌ์ฆ์ ๋ฐ๋ผ์ ๋ง๋ค๋ฉด ๋์ง๋ง ์ธ์ ํ๋ ฌ๋ก ์ฝ๋๋ฅผ ์ง๊ฒ ๋๋ฉด ์๊ฐ์ด๊ณผ๋ก ํต๊ณผ ํ ์์์๋ค. ์ธ์ ๋ฆฌ์คํธ๋ก ์ฝ๋๋ฅผ ์์ฑํด์ผ ํ๋ค.
2. ๋ฌด๋ฐฉํฅ ๊ทธ๋ํ ์ด๋ฏ๋ก ์์ชฝ์ผ๋ก ์ฐ๊ฒฐํด์ค์ผ ํ๋ค.
3. ๋ด๋ฆผ์ฐจ์์ผ๋ก ์ ๋ ฌํด์ค์ผ ํ๋ค. sort๋ less<>๊ฐ default์ด๊ธฐ ๋๋ฌธ์ greater<>๋ฅผ ์ฌ์ฉํด์ฃผ๊ฑฐ๋ ํจ์๋ฅผ ๋ง๋ค์ด์ ์ ์ฉํด์ค๋ค.
#include <iostream> | |
#include <vector> | |
#include <algorithm> | |
//#include <memory.h> // memset | |
using namespace std; | |
#define MAXR 100'001 | |
// # V : ์ ์ ์งํฉ, E : ๊ฐ์ ์งํฉ, R : ์์ ์ ์ | |
// # ์ธ์ ํ๋ ฌ๊ณผ ์ธ์ ๋ฆฌ์คํธ | |
vector<int> Edge[MAXR]; | |
//int OrderOfVisit[MAXR]; <- ์ด๊ฑธ๋ก ํ๋ฉด ์๊ฐ์ด๊ณผ. | |
vector<int> OrderOfVisit(MAXR, 0); | |
int gOrderOfVisit; | |
void DFS(int start); | |
int main(void) | |
{ | |
ios_base::sync_with_stdio(false); | |
cin.tie(0); | |
cout.tie(0); | |
int N, M, R; | |
cin >> N >> M >> R; | |
for (int i = 0; i < M; ++i) { | |
int u, v; | |
cin >> u >> v; | |
Edge[u].push_back(v); | |
Edge[v].push_back(u); | |
} | |
for (int i = 1; i <= N; ++i) { | |
//sort(Edge[i].begin(), Edge[i].end(), [](int _E01, int _E02) {return _E01 > _E02; }); | |
sort(Edge[i].begin(), Edge[i].end(), greater<>()); | |
} | |
DFS(R); | |
for (int i = 1; i <= N; ++i) | |
{ | |
cout << OrderOfVisit[i] << "\n"; | |
} | |
} | |
void DFS(int start) | |
{ | |
OrderOfVisit[start] = ++gOrderOfVisit; | |
for (auto& aEdge : Edge[start]) { | |
if (OrderOfVisit[aEdge]) | |
continue; | |
DFS(aEdge); | |
} | |
} |
'๐ coding test > โฝ ๋ฐฑ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
(๋ฐฑ์ค/c++) 11659 - ๊ตฌ๊ฐ ํฉ ๊ตฌํ๊ธฐ 4 (0) | 2022.06.23 |
---|---|
(๋ฐฑ์ค/c++) 24444~24445 ๋๋น ์ฐ์ ํ์ 1~2 (0) | 2022.06.05 |
(๋ฐฑ์ค/c++) 24479 - ์๊ณ ๋ฆฌ์ฆ ์์ - ๊น์ด ์ฐ์ ํ์ 1 (0) | 2022.06.02 |
(๋ฐฑ์ค/c++) 17472๋ฒ - ๋ค๋ฆฌ๋ง๋ค๊ธฐ (0) | 2022.05.25 |
(๋ฐฑ์ค/c++) 1976๋ฒ - ์ฌํ ๊ฐ์ (0) | 2022.02.15 |
์ ํ๋ ๊ฒ ๋ณด๋ค ๋ซ๊ฒ ์ง
ํฌ์คํ ์ด ์ข์๋ค๋ฉด "์ข์์โค๏ธ" ๋๋ "๊ตฌ๋ ๐๐ป" ํด์ฃผ์ธ์!