#include #include typedef struct Node{int x, y, v}Node; //간선을 담을 구조체 int find(int p[], int x) { //노드가 속한 부분집합의 대표 노드 찾기 if(p[x] == x) return x; return p[x] = find(p, p[x]); } void merge(int p[], int x, int y) { /노드들이 속한 부분집합들 합치기 x = find(p, x); y = find(p, y); if(x!=y) p[x] = y; } int main(void) { int n, i, j, cnt = 0, mst = 0; scanf("%d", &n); int p[n+1]; Node *g = (Node*) malloc(sizeof(Node) ..
#include #include typedef struct Node{int x, y, v;}Node; //간선을 담을 구조체 int find(int p[], int x) { //노드가 속한 부분집합의 대표노드 찾기 if(x == p[x]) return x; return p[x] = find(p, p[x]); } void merge(int p[], int x, int y) {// 두 노드의 부분집합 합치기 x = find(p, x); y = find(p, y); if(x!=y) p[x] = y; } int main(void) { int n, m, i, j, gap, cnt = 0; scanf("%d %d", &n, &m); Node *g = (Node*) malloc(sizeof(Node) * (n*(n-..
#include typedef struct Node{int u, v, d}Node; //간선 구조체 int find(int p[], int x) { //노드가 속한 부분집합의 대표 노드 찾기 if(x == p[x]) return x; return p[x] = find(p, p[x]); } void merge(int p[], int x, int y) { // 두노드의 부분집합 합치기 x = find(p, x); y = find(p, y); if(x!=y) p[x] = y; } int main(void) { int n, m, i, j, gap, cnt = 0, treeCnt = 0; scanf("%d %d", &n, &m); int p[n+1]; //노드가 속한 부분집합의 대표 노드 저장 char isTre..
#include typedef struct Node{ //간선을 받을 구조체 int x; int y; int v; //가중치 }Node; int find(int p[], int x) { //노드가 속한 부분집합의 대표 노드 찾기 if(x == p[x]) return x; return p[x] = find(p, p[x]); } void merge(int p[], int x, int y) {//노드들의 부분집합 합치기 x = find(p, x); y = find(p, y); if(x!=y) p[x]=y; } int main(void) { int n; scanf("%d", &n); int N = n*n; Node g[N]; int p[n]; for(int i=0; i= 1; } long long int ans..
- Total
- Today
- Yesterday
- 최대공약수
- 플로이드
- 카드
- 그래프
- union
- 스택
- 1835번
- 6198
- find
- BFS
- 백준
- 6198번
- 덱
- 그리디
- Mo.s
- 최소 스패닝 트리
- DP
- 1835
- java
- C언어
- 트리
- 누적합
- DFS
- 정렬
- 누적 합
- 세그먼트 트리
- Krustal
- 16120번
- 오프라인 쿼리
- C++
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |