[c++] BOJ 1753 :: ์ตœ๋‹จ๊ฒฝ๋กœ
Algorithm ๋ฌธ์ œ/BOJ 2021. 4. 6. 13:08

๋‚œ์ด๋„ : ๊ณจ๋“œ 5 ๊ฑธ๋ฆฐ ์‹œ๊ฐ„ : 1์‹œ๊ฐ„ ๋ฐ˜ ์ด์ƒ (์˜ค๋ฅ˜ ์ฐพ๊ธฐ) ๋ฌธ์ œ ์ตœ๋‹จ๊ฒฝ๋กœ ๋ฌธ์ œ ๋ฐ”๋กœ๊ฐ€๊ธฐ ํ’€์ด ๋‹ค์ต์ŠคํŠธ๋ผ ๊ธฐ๋ณธ ๊ตฌํ˜„์„ ์ด์šฉํ•ด์„œ ํ‘ผ๋‹ค. ๋‹ค์ต์ŠคํŠธ๋ผ ๊ฐœ๋… ๋ฐ”๋กœ๊ฐ€๊ธฐ ์ฝ”๋“œ #include #include #include using namespace std; int main() { // ์ž…๋ ฅ // v, e๋Š” 10^5, 10^6์ดํ•˜ int V; int E; cin >> V >> E; int start; // ์‹œ์ž‘ ์ •์  cin >> start; vector edge(V+1, vector(0)); for (int i = 0; i > from >> to >> val; edge[from].push_back(make_pair(to..

[c++] ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ฐœ๋…๊ณต๋ถ€ :: ์ตœ๋‹จ๊ฒฝ๋กœ ์ฐพ๊ธฐ (Dijkstra ์•Œ๊ณ ๋ฆฌ์ฆ˜)
์ปดํ“จํ„ฐ๊ณผํ•™ (CS)/Algorithm 2020. 9. 20. 15:28

์ตœ๋‹จ ๊ฒฝ๋กœ ๊ทธ๋ž˜ํ”„์—์„œ ์œ ๋„๋˜๋Š” ๋ฌธ์ œ๋“ค ์ค‘ ์ตœ๋‹จ ๊ฒฝ๋กœ ๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค. ์ฃผ์–ด์ง„ ๊ทธ๋ž˜ํ”„์—์„œ ํŠน์ • ์ •์ ์—์„œ ๋‹ค๋ฅธ ์ •์ ๊นŒ์ง€์˜ ์ตœ๋‹จ ๊ฒฝ๋กœ(๊ฐ€์ค‘์น˜ ํ•ฉ์ด ์ตœ์†Œ์ธ ๊ฒฝ๋กœ)๊ฐ€ ๋ฌด์—‡์ธ์ง€๋ฅผ ์•Œ์•„๋‚ด๋Š” ๋ฌธ์ œ์ด๋‹ค. ์ด๋Š” ์ด์ „์˜ MST ๋ฌธ์ œ์™€ ๋‹ค๋ฅด๋‹ค. ๋ชจ๋“  ์ •์ ์„ ํฌํ•จํ•  ํ•„์š”๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ํ•˜์ง€๋งŒ MST์—์„œ ์‚ฌ์šฉํ–ˆ๋˜ Prim(Dijkstra) ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‘์šฉํ•ด์„œ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค. [MST] Dijkstra ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ตฌํ˜„ vertice(์ •์ )๋Š” 3๊ฐ€์ง€ ๋ถ„๋ฅ˜๋กœ ๋‚˜๋‰œ๋‹ค. tree vertice(T) : tree์— ์†ํ•ด ์žˆ๋Š” ์ •์  fringe vertice (F) : tree์— ํฌํ•จ๋˜์ง€ ์•Š์œผ๋ฉด์„œ ์—ฐ๊ฒฐ๋˜์–ด์žˆ๋Š” ์ •์  unseen vertice (U) : ๋‚˜๋จธ์ง€ MST์—์„œ T์™€ F์˜ ์ •์  ์‚ฌ์ด์˜ ์ตœ์†Œ ๊ฐ€์ค‘์น˜๋ฅผ ๊ณ„์† ๊ฐฑ์‹ ํ•ด์ฃผ์—ˆ๋˜ ๊ฒƒ ๋Œ€์‹ ์—, ์ตœ๋‹จ..