cbs0615   6년 전

안녕하세요
2066번 문제를 풀다가 런타임에러가 뜹니다.
이유를 도저히 알 수가 없어서 도와주시면 감사하겠습니다.

일단 비트연산으로
맨 위에 있는 9개 슬롯 중에 한 슬롯에 남아있는 카드를 비트로 표현했습니다 예를들어
1장 2장 2장 2장 2장 2장 2장 3장 4장
001 010 010 010 010 010 010 011 100 총 27개의 비트,

dp[i] = i의 state에 있을 때 게임을 끝낼 수 있는 확률
dp[i] = dp[j] * 1/n ( j는 i로 부터 만들 수 있는 state 중 하나, n은 만들 수 있는 총 state들의 수)

시작을 100 100 100 100 100 100 100 100 100, 즉 모든 슬롯에 아직 4장의 카드가 남았을 때로 정했습니다
그리고 끝은 0, 모든 슬롯에 0장의 카드가 남았을 때로 정하고 dp를 구현했습니다.

4%로에서 계속 런타임에러가 뜹니다. 
처음에는 segmentation fault로 생각하고 접근했는데 도저히 찾을 수가 없습니다.


sgchoi5   6년 전

NEERC 문제는 대회에서 사용했었던 TC (testdata) 가 공개되어 있습니다.
돌려보면 문제가 재현이 될 겁니다.... 코드 분석해 보시길....

http://gooddaytocode.blogspot....

cbs0615   6년 전

흠.. 일단 테스트 데이터 20개는 직접 하나씩 돌려보니
다 잘 나옵니다... 

cbs0615   6년 전

dp를 map으로 구현하니까

런타임 에러없이 잘 돌아가는 것을 확인했습니다.


아무래도 메모리를 너무 많이 썼던 것 같습니다

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