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
- Algospot
- graph modeling
- Dag
- Eulerian path
- GCD
- Greedy
- Euler circuit
- scc
- Cycle detecting
- hashing
- mathematics
- Sieve_of_Eratosthenes
- DynamicProgramming
- graph
- Segment Tree
- Euler path
- disjoint-set
- dynamic programming
- flows
- Shortest path
- Eulerian circuit
- POJ
- implementation
- backtracking
- 백준
- bitmask
- BFSDFS
- BOJ
- BST
- CS Academy
Archives
- Today
- Total
그냥 하는 노트와 메모장
Algospot - 정렬 게임(SORTGAME) 본문
* Algospot - 정렬 게임(SORTGAME, )
[ 분류 - BFS ]
간단한데, 이상하게 자꾸 시간초과가 뜨는 문제다.
* 접근 방법
1. 길이가 x인 수열을 한 번 이상의 연산을 수행했을 때, 정렬 결과로 나올 수 있는 경우의 수는 x!이다.
2. 내부에서 연산을 수행하는 속도는 약 O(x)다. 따라서 1.의 결과로 보면 속도는 최대 8!*8이다.
3. 하지만 이를 들어오는 쿼리마다 수행할 수는 없으므로 "미리" 저장을 해놓고 들어오는 입력에 따라 O(C lg(x!*x)) 시간으로 찾을 수 있도록 한다.
4. 최대가 8이므로 길이 8짜리만 구하고, 나머지 길이에 대해서는 남는 부분을 오름차순으로 채우고 찾으면 된다.
- 코드
'Solved problems' 카테고리의 다른 글
CS Academy - Array Removal (0) | 2018.09.01 |
---|---|
BOJ 2549 - 루빅의 사각형 (0) | 2018.08.07 |
Algospot - 어린이날 (CHILDRENDAY) (0) | 2018.07.03 |
BOJ 3987 - VOYAGER (보이저 1호) (0) | 2018.07.03 |
BOJ 6084 - Laserphones (레이저 통신) (0) | 2018.07.02 |
Comments