#include <iostream> using namespace std; int main() { int N=0; cin >> N; int dp[1001]={0};
dp[1]=1; dp[2]=3; for(int i=3; i<=N; i++) { dp[i] = (dp[i-1]+2*dp[i-2])%10007; } cout << dp[N];
return 0; } |
https://www.acmicpc.net/problem/11727
점화식 찾기가 제일 중요!
dp[i]값이 애초에 10007로 나눈 나머지 값인건 문제가 아무리 봐도 이해안된다
일단 크기가 넘을까봐 미리 나눠주는 것 같은데
'알고리즘 문제 풀이 > 1DP_과제(~180615)' 카테고리의 다른 글
20171006_1149_RGB거리 (0) | 2017.10.06 |
---|---|
20171005_9095_1,2,3 더하기 (0) | 2017.10.05 |
20171004_11726_2xn타일링 (0) | 2017.10.04 |
20171003_1463_1로 만들기 (0) | 2017.10.03 |
20171003_10818_최소, 최대 (0) | 2017.10.03 |