반응형
문제 설명이 좀 어렵게 되있는데
dfs로 정점의 마지막까지 탐색한 뒤 길이 존재하면 1, 존재하지 않으면 0을 출력해주면 된다.
소스코드
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 | #include <cstdio> #include <cstring> #define MAX 100 using namespace std; int n, m; bool isExisitRoad; bool visit[MAX]; bool map[MAX][MAX]; void dfs(int s) { visit[s]=1; if(s==99) { isExisitRoad=1; return; } for (int x=0; x<MAX; x++) { if (map[s][x] && !visit[x]) dfs(x); } } void solve() { for (int t=0; t<10; t++) { memset(map, 0, sizeof(map)); memset(visit, 0, sizeof(visit)); isExisitRoad=0; scanf("%d %d", &n, &m); int y, x; for (int i=0; i<m; i++) { scanf("%d %d", &y, &x); map[y][x]=1; } dfs(0); if (isExisitRoad) printf("#%d\n", n); else printf("#%d\n", n); } } int main() { solve(); return 0; } | cs |
반응형
'Algorithm' 카테고리의 다른 글
[SWEA 1949] 등산로 조성 (0) | 2019.08.19 |
---|---|
[SWEA 1208] Flatten (0) | 2019.07.29 |
[SWEA 2805] 농작물 수확하기 (0) | 2019.07.23 |
[SWEA 5162] 두가지 빵의 딜레마 (0) | 2019.07.23 |
[BOJ 7576] 토마토 (0) | 2019.07.05 |