용어 정의
그래프 : 꼭짓점과 변으로 이루어진 자료구조
트리 : 연결이면서 사이클이 없는 그래프
이진 힙 : 이진트리를 배열로 구연한 것 (priority_queue)
Union-Find : 그룹 분할을 관리함
구현 예시
비가중 그래프
using Graph = vector<vector<int>>
int main() {
int N, M;
cin << N << M;
Graph G(N);
for(int i = 0; i < M; i++){
int a, b;
cin << a << b;
g[a].push_back(b);
// 만약 무향 그래프라면
g[b].push_back(a);
}
}
가중 그래프
struct Edge{
int to, weight;
Edge(int t, int w) : to(t), weight(w) {}
};
using Graph = vector<vector<Edge>>;
int main() {
int N, M;
cin << N << M;
Graph g(N);
for(int i = 0; i < M; i++){
int a, b, w;
cin << a << b << w;
g[a].push_back(Edge(b, w));
}
}