[BOJ] 5904번: Moo

https://www.acmicpc.net/problem/5904


D[i]를 S(i)의 길이라고 할 때, D[i] = 2*D[i-1]+i+3입니다. 대략 2배씩 증가하기 때문에 D{40]정도만 구해도 10^9까지 충분히 커버를 합니다.


그리고 입력받은 N에 대해 우선 D[i] < N <= D[i+1]을 만족하는 i를 찾고, 


S(i) = S(i-1) | mooo...oo | S(i-1)에 대해 N이 moo...o 구간에 속하는지, S(i-1) 구간에 속하는지를 판단하여 recursive하게 해결할 수 있습니다.


https://github.com/blisstoner/BOJ/blob/master/5904.cpp

'알고리즘 > BOJ' 카테고리의 다른 글

[BOJ] 14956번: Philosopher's Walk  (5) 2018.05.17
[BOJ] 14585번: 사수빈탕  (0) 2018.05.17
[BOJ] 13701번: 중복 제거  (0) 2018.05.17
[BOJ] 11391번: 분배  (0) 2018.05.14
[BOJ] 2287번: Monodigital Representations  (0) 2018.05.12
[BOJ] 13303번: 장애물  (4) 2018.05.12
  Comments