Блог пользователя shakil_AUST

Автор shakil_AUST, история, 9 лет назад, По-английски

Good Day everyone . Can anyone please tell me the process how to solve this problem . Thanx in advance :)

Теги dp, uva
  • Проголосовать: нравится
  • +3
  • Проголосовать: не нравится

»
9 лет назад, # |
  Проголосовать: нравится +8 Проголосовать: не нравится

DP with bitmasks. You can use two bitmasks, one for which numbers you have taken so far from the permutation, and the other to indicate which of these numbers are considered in the LIS. You need to update these two masks accordingly whenever you add the next number. Complexity: O(n * 3^n) since the LIS mask is always a subset of the former.

  • »
    »
    9 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится

    sgtlaugh thank you for your reply . I am troubling with how to do the Lis part calculation . If you kindly post a sudo code for me then it will be easy to understand :)

    • »
      »
      »
      9 лет назад, # ^ |
        Проголосовать: нравится +6 Проголосовать: не нравится

      Basically the idea is that you store the values of the lis array in a bitmask. The lis array is the array in the standard N log N algorithm where usually binary search is used to update it.

      https://ideone.com/LEOM5d