백준 문제/MST 7

[백준] 9372번 상근이의 여행

문제: 9372번: 상근이의 여행  #include #include #include #include #include #include #include #include #include #include // setprecision을 사용하기 위한 헤더#include using namespace std;int main() { ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); int t; cin >> t; while (t-- > 0) { int n, m; cin >> n >> m; for (int i = 0; i > a >> b; } // 음.. 상근이가 모든 국가를 여행하기 위해 타야 하는 비행기 종류의 최소 개수는 걍 n-1 아님..? // ..

백준 문제/MST 2024.12.06

[백준] 1774번 우주신과의 교감

문제: 1774번: 우주신과의 교감  #include #include #include #include #include #include #include #include #include #include // setprecision을 사용하기 위한 헤더using namespace std;vector nodes; // 정점이 속한 집합 번호vector> coordinates; // 황선자와 우주신들의 좌표struct compare { bool operator()(pair, double> a, pair, double> b) { return a.second > b.second; }};// 각 정점이 속한 집합 번호 리턴int find_set(int u) { if (nodes[u] == u) return u; ..

백준 문제/MST 2024.11.14

[백준] 16562번 친구비

문제: 16562번: 친구비  #include #include #include #include #include #include #include #include #include using namespace std;vector nodes; // 정점들// 우선 순위 큐가 pair 의 두 번째 요소를 기준으로 최소힙으로 동작할 수 있도록 하는 비교 함수 객체 만들기struct compare { bool operator()(pair, int> a, pair, int> b) { return a.second > b.second; }};// 각 정점이 속한 집합 번호를 반환하는 함수int find_set(int u) { if (nodes[u] == u) return u; return nodes[u] = find_..

백준 문제/MST 2024.11.13

[백준] 4386번 별자리 만들기

문제: 4386번: 별자리 만들기  #include #include #include #include #include #include #include #include using namespace std;vector nodes;vector> coordinates; // 좌표값들(좌푤를 노드와 매핑하는데 이용할 것)// 두 번째 요소인 가중치를 기준으로 최소힙으로 동작하도록 하기 위한 사용자 정의 함수 객체struct compare { // 우선 순위 큐의 디폴트는 최대힙으로 동작 // 이를 최소힙으로 동작하도록 해주려면 a>b 이를 리턴해줘야함. // 근데 지금 두번째 요소를 기준으로 최소힙으로 만드니까 a.second > b.second 이렇게 한 것!! bool operator()(pair, float>..

백준 문제/MST 2024.11.12

[백준] 1197번 최소 스패닝 트리

문제: 1197번: 최소 스패닝 트리  #include #include #include #include #include #include #include using namespace std;int compare(pair, int> a, pair, int> b) { return a.second node; // 그래프의 정점// 정점이 속한 집합의 번호 리턴// find_set 하면 타고 올라갈때마다 해당 node 의 값을 해당 집합 번호로 바꿔줄 것..// 다음에 또 접근할 때 아래에서 위까지 타고 올라가는 과정은 반복하지 않기 위함.int find_set(int u) { if (u == node[u]) return u; return node[u] = find_set(node[u]);}// 각 정점이 속..

백준 문제/MST 2024.11.11