[๋ฐฑ์ค€] 16398 ํ–‰์„ฑ์—ฐ๊ฒฐ - MST, ์šฐ์„ ์ˆœ์œ„ ํ

2024. 8. 4. 02:14ยท๐Ÿ’ป Algorithms/๋ฐฑ์ค€

[ ๋ฌธ์ œ๋งํฌ ]

https://www.acmicpc.net/problem/16398

 

 

๐Ÿšฉ ์กฐ๊ฑด

  1. ์ œ๊ตญ ๋‚ด ๋ชจ๋“  ํ–‰์„ฑ์„ ์—ฐ๊ฒฐ
  2. ๊ทธ ์œ ์ง€๋น„์šฉ์„ ์ตœ์†Œํ™”

 


๐Ÿšฉ ์ ‘๊ทผ

1,2 -> ์ตœ์†Œ์‹ ์žฅํŠธ๋ฆฌ => Prim ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ด์šฉํ•˜์ž!

 


๐Ÿšฉ ์‹œํ–‰์ฐฉ์˜ค

ํ”Œ๋กœ์šฐ ๊ด€๋ฆฌ ๋น„์šฉ์˜ ๋ฒ”์œ„๊ฐ€ "1 ≤ Cij ≤ 100,000,000"์ด๋ฏ€๋กœ, ์ฒ˜์Œ์— ans๋ฅผ int๋กœ ์„ ์–ธํ•˜์—ฌ "ํ‹€๋ ธ์Šต๋‹ˆ๋‹ค"๊ฐ€ ๋‚˜์˜ด
=> ans๋ฅผ long long์œผ๋กœ ์„ ์–ธํ•˜์—ฌ์•ผ ํ•จ

 

 

๐Ÿ’ป ์ฝ”๋“œ (C++)

#include <iostream>
#include <queue>
#include <vector>
#include <tuple>
#include <algorithm>
using namespace std;

priority_queue<tuple<int, int, int>, vector<tuple<int, int, int>>, greater<tuple<int, int, int>>> pq; //cost, a, b
vector<pair<int, int>> adj[1001]; //cost, b
bool check[1001];
int main() {
	int N, c;
	int a, b;
	cin >> N;

	for (int i = 0; i < N; i++) {
		for (int j = 0; j < N; j++) {
			cin >> c;
			if (c == 0)continue;
			adj[i].push_back({ c,j });
		}
	}

	//์ฒซ ๋ฐฉ๋ฌธ : 0๋ฒˆ ํ–‰์„ฑ
	int cnt = 1;
	long long ans = 0;
	a = 0; check[a] = true;

	while (cnt <= N - 1) {
		for (auto next : adj[a]) {
			pq.push({ next.first, a, next.second });
		}
		tie(c, a, b) = pq.top();
		while (check[b]) {
			pq.pop();
			tie(c, a, b) = pq.top();
		}
		ans += c;
		check[b] = true;
		a = b;
		pq.pop();
		cnt++;
	}

	cout << ans;
}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

'๐Ÿ’ป Algorithms > ๋ฐฑ์ค€' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[๋ฐฑ์ค€] 11403 ๊ฒฝ๋กœ ์ฐพ๊ธฐ - ๊ทธ๋ž˜ํ”„, DFS  (0) 2024.08.17
[๋ฐฑ์ค€] 1927 ์ตœ์†Œ ํž™ - ์šฐ์„ ์ˆœ์œ„ ํ  (0) 2024.08.14
[๋ฐฑ์ค€] 11780 ํ”Œ๋กœ์ด๋“œ2 - ํ”Œ๋กœ์ด๋“œ ๊ฒฝ๋กœ๋ณต์›  (0) 2024.08.04
[๋ฐฑ์ค€] 11404 ํ”Œ๋กœ์ด๋“œ - ํ”Œ๋กœ์ด๋“œ  (0) 2024.08.04
[๋ฐฑ์ค€] 1766 ๋ฌธ์ œ์ง‘ - ์œ„์ƒ์ •๋ ฌ, ์šฐ์„ ์ˆœ์œ„ ํ  (0) 2024.08.04
'๐Ÿ’ป Algorithms/๋ฐฑ์ค€' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [๋ฐฑ์ค€] 1927 ์ตœ์†Œ ํž™ - ์šฐ์„ ์ˆœ์œ„ ํ
  • [๋ฐฑ์ค€] 11780 ํ”Œ๋กœ์ด๋“œ2 - ํ”Œ๋กœ์ด๋“œ ๊ฒฝ๋กœ๋ณต์›
  • [๋ฐฑ์ค€] 11404 ํ”Œ๋กœ์ด๋“œ - ํ”Œ๋กœ์ด๋“œ
  • [๋ฐฑ์ค€] 1766 ๋ฌธ์ œ์ง‘ - ์œ„์ƒ์ •๋ ฌ, ์šฐ์„ ์ˆœ์œ„ ํ
์ ๋„
์ ๋„
  • ์ ๋„
    ๋„์ 
    ์ ๋„
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (30)
      • ๐Ÿ’ป Algorithms (28)
        • ๋ฐฑ์ค€ (22)
        • ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค (6)
      • ๐Ÿ”Ž Deep Learning (0)
      • ๐Ÿ’ฅ ํŠธ๋Ÿฌ๋ธ”์ŠˆํŒ… (1)
      • ๐Ÿ•น Unity (1)
      • ๐Ÿฅ” ์ž‰ํ…… (0)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ํ™ˆ
    • ํƒœ๊ทธ
    • ๋ฐฉ๋ช…๋ก
  • ๋งํฌ

    • Blog
    • Github
    • Velog
  • ๊ณต์ง€์‚ฌํ•ญ

  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.0
์ ๋„
[๋ฐฑ์ค€] 16398 ํ–‰์„ฑ์—ฐ๊ฒฐ - MST, ์šฐ์„ ์ˆœ์œ„ ํ
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”