Logo
(追記) (追記ここまで)

풀이 관련 질문있습니다.

1208번 - 부분수열의 합 2

원래라면 최대 2^40 으로 모든 부분 수열의 합을 구해서 S가 되는 개수를 구해줘야 되는데

이걸 반으로 나눠서 2^20 두 번의 합으로 S가 되는 개수를 구할 수 있다는 점이 어떻게 가능한지 궁금합니다.

뭔가 당연한거 같은데 수학적으로 어떻게 증명이 되는지 궁금합니다.

2^40의 메모리 대신 2^20 * 2로 메모리를 줄일 수 있고

시간 측면에서도 전체 2^40 경우의 수를 탐색하는 대신

2^20 개 씩으로 나누어 정렬된 상태로 저장한뒤 이분탐색을 사용하면 O(2^20 * log(2^20)) 으로 해결 가능합니다.

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

(追記) (追記ここまで)

출처

대학교 대회

  • 사업자 등록 번호: 541-88-00682
  • 대표자명: 최백준
  • 주소: 서울시 서초구 서초대로74길 29 서초파라곤 412호
  • 전화번호: 02-521-0487 (이메일로 연락 주세요)
  • 이메일: contacts@startlink.io
  • 통신판매신고번호: 제 2017-서울서초-2193 호

AltStyle によって変換されたページ (->オリジナル) /