супер задача! (Придумал сам)

Правка ru3, от Tih_Monkes, 2024-05-01 19:07:36

Условие: У Вовы есть гистограмма A. У A[i] = (h[i], w[i]); у прямоугольника A[i] есть высота h[i], и ширина w[i]. Он хочет достроить её до прямоугольника с минимальной площадью. Какова площадь достроенной части? 1 <= n <= 10 ^ 5 1 <= h[i], w[i] <= 10 ^ 18 Решение должно быть по асимптотике O(n).

Решение (моё): Представим каждый прямоугольник в виде клеток. Тогда будет удобно считать их площадь. Тогда получается простая формула смотри в прикреплённом файле. Решение (код) Python.

res = 0 m = max(h) for i in range(n): res += w[i] * (m — h[i])

Решение (код) С++.

int res; int m = max(h); for (int i = 0; i < n; ++i){ res = res + w[i] * (m — h[i]); } Пишите свои решения в комментах! Жду! Формула: /predownloaded/47/c9/47c982d55d175c55634c5778efe1ee2fc55e8973.png

Теги жадные алгоритмы, линейные алгоритмы, математика

История

 
 
 
 
Правки
 
 
  Rev. Язык Кто Когда Δ Комментарий
ru3 Русский Tih_Monkes 2024-05-01 19:07:36 76
ru2 Русский Tih_Monkes 2024-05-01 18:59:15 2 Мелкая правка: '; h[i]);\n\nПишите с' -> '; h[i]);\n}\nПишите с'
ru1 Русский Tih_Monkes 2024-05-01 18:58:35 768 Первая редакция (опубликовано)