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

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

we define function f(i,j) on array A as below:

f(i,j) = (i-j)^2 + (A[i+1] + A[i+2] + A[i+3] + ... + A[j])^2

find the minimum value of function f.

2 <= A.size <= 10^5

-10^4 <= A[i] <= 10^4

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

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

Firstly , we can make a cumulative sum array Prefix[i] . The function f(i,j) can be written as = ( i — j ) ^ 2 + ( Prefix[i] — Prefix[j] ) ^ 2 . Now this is analogous with closest pair point problem where each coordinate is ( i , Prefix[i] ) . The Complexity would be O(N log N ) .