[BOJ] 1309
동물원
1309번 https://www.acmicpc.net/problem/1309
“전체를 부분으로 빈틈없이 쪼개는 최적의 기준을 만들자” 라는 교훈을 얻은 문제였습니다.
cage[i] 를 구한다고 할 때,
첫 번째 줄이 처음으로 사자가 들어와있지 않은 줄인 경우는 cage[i - 1]
두 번째 줄이 처음으로 사자가 들어와있지 않은 줄인 경우는 2 × cage[i - 2]
세 번째 줄이 처음으로 사자가 들어와있지 않은 줄인 경우는 2 × cage[i - 3]
…
i번째 줄이 처음으로 사자가 들어와있지 않은 줄인 경우는 2 × cage[0]
모든 줄에 사자가 들어와있는 경우는 2 임을 이용하여
cage[i] = cage[i - 1] + 2 × (cage[i - 2] + cage[i - 3] + … + cage[0]) + 2 의 점화식을 만들면 됩니다.
2 × (cage[i - 2] + cage[i - 3] + … + cage[0]) 을 미리 저장해두고 이용하지 않으면 시간초과가 납니다.
Leave a comment