COCI 2011/2012 contest #6 - Kosare 질문

  • 장홍준
    장홍준

    http://www.hsin.hr/coci/contest6_tasks.pdf

    문제를 간략히 요약하면 다음과 같습니다.

    N개의 상자들과 M 종류의 장난감이 있습니다.
    각각의 상자들에는 Ki개의 장난감들이 들어있습니다.(단, 동일한 종류의 장난감은 들어있지 않습니다.) 당신은 N개의 상자 중 몇 개를 선택하여 당신의 친구에게 선물을 하려합니다. 선택한 상자들에는 M 종류의 장난감들이 모두 들어있어야 합니다. 선물을 할 수 있는 방법의 수를 구하세요.
    (1<=N<=1000000, 1<=M<=20)

    처음에 이 문제를 보았을 때에 O(N*(2^M))의 bitmask-dp가 떠올랐지만 N의 범위를 보고 고민해보았는데 포함배제의 원리를 응용한 쪽으로 생각을 하고 있는데 계속 뜬 구름 잡는 기분만 드네요ㅠㅠ 대회 공식 솔루션을 읽어보았는데도 솔루션에서의 b[]와 c[]가 잘 이해가 되지 않구요.
    혹시 다른 솔루션이나 대회 공식 솔루션을 완전히 이해하시고 계신 분은 솔루션 설명 부탁드려요~


    11년 전
5개의 댓글이 있습니다.
  • bonjwa
    bonjwa

    http://www.hsin.hr은 크로아티아의 코딩대회네요...


    11년 전 link
  • Kureyo
    Kureyo

    솔루션에 b[]와 c[]가 있나요?...


    11년 전 link
  • 장홍준
    장홍준

    solutions.pdf 파일에요...


    11년 전 link
  • kriii
    kriii

    http://www.hsin.hr/coci/contest6_solutions.zip

    솔루션pdf와 소스파일이 들어있는 압축파일입니다.


    11년 전 link
  • Kureyo
    Kureyo

    bs1,s2...sk := {s1,s2,...sk}의 부분집합을 선물리스트로 갖는 박스들의 모임인거같네요.. 그리고 그걸 Divide&Conquer로 구하는듯 ㄷㄷ


    11년 전 link
  • 정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면 온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야 합니다. 현재 문제를 푸셨습니다.