KLIS 문제에서 LIS 개수의 최대값 어떻게 구하죠?

  • cjkis
    cjkis

    https://algospot.com/judge/problem/read/KLIS

    책에는 2^(n/2)개가 있다고하는데..

    어떻게 이런 공식이 나올수가 있는거져?

    이거 구할줄 모르면 오버플로 예건할 수 없을거같아서 알면 좋을 것 같아여 ㅋㅎㅋㅎ


    9년 전
1개의 댓글이 있습니다.
  • espuer
    espuer

    이미 늦었겠지만 제가 생각하는 답변을 달면 왼쪽부터 시작해서 오른쪽으로 숫자를 2개중에 하나 선택하도록 배열을 만들면 됩니다.
    예를들어 n=10이면 2 1 4 3 6 5 8 7 10 9가 되겠죠. 이렇게되면 항상 1이나 2중 하나를 선택하고 그 후에는 4나 3중 하나를 선택하여야 합니다. 결국 2개의 페어로 구성된 5개 세트의 조합을 선택하는 문제니까 2^5가 되죠. 일반화시키면 a개중에 하나를 선택할 수 있는 b개의 세트 (a*b = n)를 가지고 KLIS를 만들면 a^b가 되네요. 그리고 책에 최대값이라는 표현이 있었나 모르겠는데 2^(n/2)가 최대값이 아닐 수 있습니다. 예를들면 n=12일때는 2^6보다 3^4가 크니깐요. 혹시 제가 틀렸으면 지적해주세요 ㅎㅎ


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