Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- backtracking
- Shortest path
- GCD
- Cycle detecting
- BOJ
- Euler circuit
- POJ
- mathematics
- scc
- Eulerian circuit
- Eulerian path
- Sieve_of_Eratosthenes
- Segment Tree
- graph
- dynamic programming
- Greedy
- BFSDFS
- BST
- CS Academy
- graph modeling
- disjoint-set
- implementation
- bitmask
- DynamicProgramming
- hashing
- Algospot
- Euler path
- flows
- Dag
- 백준
Archives
- Today
- Total
그냥 하는 노트와 메모장
BOJ 2549 - 루빅의 사각형 본문
* BOJ 2549 - 루빅의 사각형
[ 분류 - BFS(Bidirectional search)/ Backtracking ]
푸는 방법이 다소 다양해서 포스팅하고자 한다.
주어진 문제에서 보면 최대 7번까지만 움직여도 충분히 해결가능한 입력만 주어진다고 한다. 그렇다면 주어진 입력과 목표 4x4배열을 E와 S라고 하자. 그러면 E가 최대 3~4번, S가 최대 3~4번을 움직이면 그 안에 겹치는 교차지점이 반드시 생긴다.
특정 지점 4x4 배열 k에 대해 움직일 수 있는 가지수는 (4+4)*3이 된다. 즉 24 가지수가 나올 수 있는데, S또는 E에서 최대 7번을 움직이기 때문에 24^7의 경우의 수가 나오는데 이 값은 너무나 크다. 시간초과가 자명하다.
따라서 S,E가 교차지점까지 3~4번 이동하는 최대 2*(24^4)의 경우의 수로 승부를 보자. 양방향 탐색을 구현해주시면 되겠다. 백트랙킹도 가능하나 이 포스팅은 양방향 탐색이 가능함을 알리기 위한 포스팅이기에 다른 블로그를 참고해주길 바란다.
'Solved problems' 카테고리의 다른 글
BOJ 14258 - XOR 그룹 (0) | 2018.09.01 |
---|---|
CS Academy - Array Removal (0) | 2018.09.01 |
Algospot - 정렬 게임(SORTGAME) (0) | 2018.07.03 |
Algospot - 어린이날 (CHILDRENDAY) (0) | 2018.07.03 |
BOJ 3987 - VOYAGER (보이저 1호) (0) | 2018.07.03 |
Comments