본문 바로가기
반응형

BFS11

[알고리즘] c++ cpp 숨바꼭질 시리즈 (숨바꼭질2) 포인트 1. BFS (너비 우선 탐색) 를 이해를 하고 있는가? 2. 숨바꼭질 2에서 중요한 점은 가장 빠른 경우의 수를 세는 것이다. 기존 BFS () 는 최초 도착 만을 세기 때문에 다른 방식으로 처리를 해주어야 한다. #include #include #include using namespace std; #define MAX 100000 + 1 int cnt; int time; bool visited[MAX]; int n, m; int second() { queue q; q.push(make_pair(n, 0)); visited[n] = 1; while (!q.empty()) { int x, xtime; tie(x, xtime) = q.front(); q.pop(); visited[x] = 1; //.. 2020. 10. 4.
[알고리즘] c++ cpp 숨바꼭질 시리즈 (숨바꼭질1) 포인트 1. BFS (너비 우선 탐색) 2. 기본적인 것들은 똑같고 조건들만 다름을 이해하자 #include #include using namespace std; #define MAX 100001 bool visited[MAX]; int n, m; int bfs() { queue q; int time = 0; q.push(n); while (1) { int size = q.size(); for (int i = 0; i 0 && !visited[n - 1]) { //범위체크 && 방문하지 않았거나 q.push(n - 1); visited.. 2020. 10. 4.
[알고리즘] c++ cpp 카카오 프렌즈 컬러링 북 포인트 1. BFS 너비 우선 탐색 (최대 넓이, 영역의 수, ~ ) #include #include #include using namespace std; int dx[] = {0, 0, 1, -1}; int dy[] = {1, -1, 0, 0}; bool visited[100][100]; // 전형적인 BFS 문제 int bfs(int a, int b, int m, int n, vector map) { queue q; q.push(make_pair(a, b)); visited[a][b] = true; int color = map[a][b]; int cnt = 1; while (!q.empty()) { int x, y; tie(x, y) = q.front(); q.pop(); for (int i = 0;.. 2020. 9. 23.
반응형