justking   4년 전

다음의 코드는 정답입니다.

다만 이해가안되는점이 하나있는데요

23번줄에 보면  d[i][j] %= mod;  이부분이 이해가안됩니다.........

제 생각으로는 미리 나누지않고 31번줄의 마지막에 ans를 구한다음 나누는게 맞는것같은데

이부분이 꼭 필요하더군요 음하하...;;;;

도와주세요ㅠㅠ


ps. 제똥코드 고칠부분이나 좀 보기좋게 바꿀수있는 방법이 있으면 알려주시면 감사히 배워먹겟습니다 ㅎ

lyzqm   4년 전

오버플로우가 발생할 수 있기 때문에 해주는겁니다.

d[i][j]에 2^63-1(long long 최댓값)이 들어있고 d[i-1][j-1]이 뭐 1000이라고 칩시다.

그럼 다음 d[i][j]는 2^63-1+1000인데 이 수는 long long 자료형의 범위를 넘어갑니다.

따라서 지속적으로 mod연산을 해주는겁니다

lucidash   4년 전

( a + b ) % c = ( a % c + b % c  ) % c  입니다. 

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