본문 바로가기
반응형

C++153

[알고리즘] c++ cpp 연구소시리즈 (연구소3) 포인트 1. bfs 를 잘 할 수 있는가? 2. 활성 비활성을 잘 구분할 수 있는가? #include #include #include #include #include #include using namespace std; #define MAX 50 #define VIRUS_MAX 10 int map[MAX][MAX]; int dist[MAX][MAX]; int n, m; int virusCount = 0; int answer = 987654321; bool virusVisited[VIRUS_MAX]; vector virus; int dx[4] = {-1, 1, 0, 0}; int dy[4] = {0, 0, -1, 1}; void bfs(int size) { queue q; for (int i = 0; i .. 2020. 10. 5.
[알고리즘] c++ cpp 연구소시리즈 (연구소2) 포인트 1. bfs 를 잘 할 수 있는가? 2. 최소 시간을 알 수 있는가? 🧶문서는 항상 수정 될 수 있습니다. 비판은 환영합니다. #include #include #include #include #include #include using namespace std; #define MAX 50 #define VIRUS_MAX 10 int map[MAX][MAX]; int dist[MAX][MAX]; int n, m; int cnt = 0; int answer = 987654321; vector virus; vector real_virus; int dx[4] = {-1, 1, 0, 0}; int dy[4] = {0, 0, -1, 1}; void bfs() { queue q; for(auto ele : re.. 2020. 10. 5.
[알고리즘] c++ cpp 숨바꼭질 시리즈 (숨박꼭질4) 포인트 1. BFS (너비 우선 탐색) 2. 이번 조건은 방문했던 경로들을 기억을 할 수 있는가 이다. 🧶문서는 항상 수정 될 수 있습니다. 비판은 환영합니다. #include #include #include #include using namespace std; const int MAX = 100001; int parent[MAX]; //해당 지점 방문 직전 지점 저장 bool visited[MAX]; vector map; //경로 저장 int n, m; int bfs() { queue q; // 페어 큐를 만든다. q.push({n, 0}); visited[n] = 1; while (!q.empty()) { // 빌때 까지 반복 int x, time; tie(x, time) = q.front(); q... 2020. 10. 4.
[알고리즘] c++ cpp 숨바꼭질 시리즈 (숨바꼭질3) 포인트 1. bfs() 를 잘 알고 있는가? 2. bfs는 모든 노드를 지날때 같은 가중치를 같는 노드만 탐색을 할 수 있다. 이에 dequeue 를 사용을 하여 가중치를 다르게 처리를 하여 bfs 를 진행할 수 있도록 한다. 🧶문서는 항상 수정 될 수 있습니다. 비판은 환영합니다. #include #include #include using namespace std; int n, m; int dist[100001]; void bfs() { // bfs 는 모든 노드로 가는 가중치가 1인 경우나 같은 경우이다. // 지금 문제는 하나의 가중치가 다름으로 다르게 처리를 해야 한다. deque q; q.push_back(n); dist[n] = 0; while (!q.empty()) { int x = q.fr.. 2020. 10. 4.
반응형