chabt   11달 전

아래가 솔직히 잘 이해가 안되요. 좀 쉽게 이해할 수 있는 방법이 있을까요 ?

1차원DP에서는 시간초과가 나기 때문에 2차원DP를 써야 한다고 되어 있는데요.

D[i][1] = D[i-1][1] + D[i-3][0]  --> 이 부분 잘 이해가 안가요 ?  어떻게 이해해야 할까요 ?

D[1][0] = 2;
D[2][0] = 7;
D[2][1] = 1;

for(int i=3; i<=N; i++) {
D[i][1] = (D[i-1][1] + D[i-3][0]) % MOD;
D[i][0] = (D[i-2][0]*3 + D[i-1][0]*2 + D[i][1]*2) % MOD;
}

댓글을 작성하려면 로그인해야 합니다.