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

Автор v0rtex, история, 3 года назад, По-английски

An array of size N is given and a value K. You have to find the minimum subset size so that subset sum is exactly equal to K, if not print -1. 0 < K, a[i], N < 10^6.

  • Проголосовать: нравится
  • +6
  • Проголосовать: не нравится

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

Isn't this the famous coin change problem? You can easily find the solution online.

  • »
    »
    3 года назад, # ^ |
    Rev. 2   Проголосовать: нравится +8 Проголосовать: не нравится

    Sorry, can you explain how?

    In problem which mentioned in post constraints for $$$N, K, a_i$$$ to high for stupid knapsack.

    Other solution with sqrt opt works $$$O(n * log(max(a_i)) * sqrt(K))$$$, thats too much.

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

      This problem came in Colortoken placement exam. Can you please tell me how can it be solved?

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

        Can you say the time limit, and you sure that constraint is 10^6?

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

          ![ ](6305047218306002650-121)

          The sample output were: 2 and -1

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

            Are you sure that they ask about finding subset?You tried submit solution for subsegment?

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

              I think so too. Since the output for the second case is -1 they are probably asking for a subsegment (even if that is not clear in the statement). This could be solved in O(n) by using two pointers as well, which explains the constraints.

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

            nice statement awesome task

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

      Could you elaborate on this sqrt optmization (or provide links)? Depending on what it is maybe the solution is using it with bitset

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

      Or can't we do fft here? Binary search on no of boxes. Complexity will be $$$O(N*logN*log(max a_i))$$$

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

        How do you check that you can collect this amount or not by FFT with fixed amount of items?

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

          I mean Like we do "Fast subset transform" in a similar way if possible lets say $$$s$$$ will be the smallest size of some subset such that it's sum is $$$K$$$. then polynomial raise to power $$$s$$$ will contains non-zero coefficient for $$$x^K$$$ term right.

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

I encountered a similar problem recently, can someone suggest some solution:
Given an array A of size N, find the number of subsets of size exactly K that add up to S.
e.g:

A = [1,1,1,2,3,4]
K=3, S=6
answer: 6

explanation (0 based indexing)

[0,1,5]
[0,2,5]
[1,2,5]
[0,3,4]
[1,3,4]
[2,3,4]

I don't remember the constraints, but let's say 1 <= N,S <= 1000

and would it really be possible to solve under normal time-limits i.e. 1 or 2 sec if N,S were 10^5?

»
2 месяца назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

So you got the answer? if yes can you please share.