오랜만에 인접행렬 사용~
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 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 | #include <stdio.h> #include <string.h> int map[211][211]; int N, M, count; int visit[3]; void DFS(int cur, int n) { if (n == 3) { count++; return; } int Flag = 0; for (int i = cur + 1; i <= N; i++) { Flag = 0; for (int j = 0; j < n; j++) { if (map[i][visit[j]] == 1 || map[visit[j]][i] == 1) { Flag = 1; break; } } if (Flag) continue; visit[n] = i; DFS(i, n + 1); visit[n] = 0; } return; } int main() { int a, b; scanf("%d %d",&N, &M); for (int i = 0; i < M; i++) { scanf("%d %d", &a, &b); map[a][b] = map[b][a] = 1; } DFS(0, 0); printf("%d\n",count); return 0; } | cs |
'SW 업무 관련 > 백준' 카테고리의 다른 글
[C언어] 16234. 인구 이동 (1) | 2018.10.21 |
---|---|
[C언어] 1600. 말이 되고픈 원숭이 (1) | 2018.10.18 |
[C언어] 2210. 숫자판 점프 (439) | 2018.10.17 |
[C언어] 13458. 시험감독 (0) | 2018.10.17 |
[C언어] 15684. 사다리 조작 (474) | 2018.10.16 |