algospot.com :: SNAIL
달팽이 문제 정보 문제 깊이가 n 미터인 우물의 맨 밑바닥에 달팽이가 있습니다. 이 달팽이는 우물의 맨 위까지 기어올라가고 싶어하는데, 달팽이의 움직임은 그 날의 날씨에 좌우됩니다. 만약 �
www.algospot.com
알고리즘 문제해결전략 책에 나와있는 알고리즘과 동일하게 구현하였다.
제대로 구현한 것이 분명한데 자꾸 쌩뚱맞은 결과가 출력되어서 골머리를 앓았다.
double형 2차원 배열을 memset()함수를 통해 -1로 초기화했다는 것이 오답의 원인이었다.
이중 for문으로 memo[1001][2001] 배열을 -1로 초기화하여 문제를 해결하였다.
#include <cstdio>
using namespace std;
double memo[1001][2001];
int n, m;
double Solution(int days, int clime)
{
if (days == m) return clime >= n ? 1 : 0;
double& ret = memo[days][clime];
if (ret != -1) return ret;
return ret = (0.25 * Solution(days + 1, clime + 1)) + (0.75 * Solution(days + 1, clime + 2));
}
int main(void)
{
int tc;
scanf("%d", &tc);
while (tc--)
{
for (int i = 0; i < 1001; i++)
for (int j = 0; j < 2001; j++)
memo[i][j] = -1;
scanf("%d %d", &n, &m);
printf("%.10f\n", Solution(0, 0));
}
return 0;
}
알고리즘 200일 프로젝트 - 55 day
'알고리즘 > algospot' 카테고리의 다른 글
알고스팟: 폴리오미노 (ID: POLY) (0) | 2020.06.05 |
---|---|
알고스팟: 비대칭 타일링 (ID: ASYMTILING) (0) | 2020.06.01 |
알고스팟: 삼각형 위의 최대 경로 개수 세기 (ID: TRIPATHCNT) (0) | 2020.05.29 |
알고리즘 문제해결전략 문제8.7 원주율 외우기 (ID: PI) (0) | 2020.05.28 |
알고리즘 문제해결전략 문제8.5 합친 LIS (ID: JLIS) (0) | 2020.05.27 |