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

Автор Loserinlife, история, 18 месяцев назад, По-английски

Count the most common occurrence of subarray sum.

Constraints:

N <= 1e6; abs(ai) <= 1e6

Ex:

Inp:

5

1 1 2 1 4

Out:

3 (there are 3 subarray with the sum of 4: (1, 1, 2), (1, 2, 1), (4)

This question appears in ones of my friends competition and I have no idea how to solve it. Can someone help? Thanks.

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

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

Auto comment: topic has been updated by Loserinlife (previous revision, new revision, compare).

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

Auto comment: topic has been updated by Loserinlife (previous revision, new revision, compare).

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

Any link?

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

    I don't have one. It's an offline competition. (It could be impossible for all I know)

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

I think it's unsolvable under the given constraints (it looks harder than FFT).

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

do you mean ∑abs(ai)<=1e6?

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

    The original problem says for a single element ai. But the problem itself is probably wrong.

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

      Can you ask them the solution? If they have any of course.

  • »
    »
    18 месяцев назад, # ^ |
    Rev. 4   Проголосовать: нравится -12 Проголосовать: не нравится

    Even if the sum of the values is small, isn't the solution $$$O(n + m \log^2 m)$$$ (where $$$m = \sum |a_i|)$$$? You have to compute only the differences such that $$$i < j$$$, and iirc this is only possible with FFTs of total length $$$O(m \log m)$$$.

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

      i didn't get why it was m log^2 m,

      i think i need here is a prefix sum, a convolution and an exclusion. it's n log n

      I'm not sure is there sth I missed.

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

        The convolution actually calculates the most frequent absolute value of a subarray sum (each subarray contributes to two sums, with opposite signs). You need D&C if you only want sums with the correct sign.

        (What's an "exclusion"? Am I missing something?)

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

          oh ! oh ! you are right.

          Single fft cannot distinguish positive and negative perfix

          why are there so many downvotes in your comments? The community not know the correct answer