백준 14867번, 한국정보올림피아드 2017년 고등부 1번, 물통 풀이
문제 백준 14867번 풀이 $ F, E, M $ 연산을 실행하며, 물통에 $ C, D $가 담겨있도록 만드는 최솟값을 구하려면, BFS(너비 우선 탐색)를 사용하면 됩니다. 이미 방문한 정점인지 확인하는 것은 map을 사용하면 쉽게 처리할 수 있습니다. $ F, E, M $ 연산 구현만 유의하면 쉽게 풀 수 있습니다. 소스코드 #include #include #include #include using namespace std; typedef pair pii; unordered_map vis; int ans = -1; int a, b, ta, tb; queue q; void F(int ca, int cb) { if (!vis[a][cb]) { vis[a][cb] = vis[ca][cb] + 1; q.pu..
2020.10.11