KNAPSACK 점화식.. 이거 두개가 차이가 있을까요? skan1543 for(int i=1;i<=n;i++) { if(D[money[i]]<value[i]) D[money[i]]=value[i]; for(int j=0;j<=m-money[i];j++) { if(D[j]!=0 && D[j+money[i]]<D[j]+value[i]) D[j+money[i]]=D[j]+value[i]; } } 이렇게 점화식을 세워서 해봤는데, 계속 오답이 뜨길래요.. for(int i=1;i<=n;i++){ for(int j=0;j<=m-money[i];j++) if(D[j+money[i]]<D[j]+value[i]){ D[j+money[i]]=D[j]+value[i];} } 로 간단하게 바꿔주니 정답이 뜨더라구요.. 위에 처럼 풀어도 상관없지 않나요? 반례가 있을ㅈ지요.. ㅠㅠㅠㅠ 문제는 SUSHI 입니다!! 9년 전
2개의 댓글이 있습니다. Toivoa 첫 코드에서 메뉴가 예산을 초과할 때 (money[i] > m) 계산 후 D 배열을 m까지만 초기화 헀다면 다음 테스트 케이스 계산시 틀릴 수도 있겠네요 9년 전 link skan1543 헉..... 그렇군요 ... 9년 전 link 정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면 온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야 합니다. 현재 문제를 푸셨습니다.
skan1543
이렇게 점화식을 세워서 해봤는데, 계속 오답이 뜨길래요..
로 간단하게 바꿔주니 정답이 뜨더라구요..
위에 처럼 풀어도 상관없지 않나요?
반례가 있을ㅈ지요.. ㅠㅠㅠㅠ
문제는 SUSHI 입니다!!
9년 전