Advertisement
Guest User

Indicatii Skyline

a guest
Mar 18th, 2019
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.76 KB | None | 0 0
  1. Soluție oficială(Vintilă Valentin)
  2. Folosind o stivă, vom calcula pentru fiecare ‘bloc’ alte două ‘blocuri’ care să fie, din punct de vedere al înălțimii, strict mai mici decât cel inițial. Unul din aceste blocuri va fi situat în stânga, iar celălalt în dreapta. Aceste rezultate vor fi reținute în vectorii S, respectiv D. Acest algoritm este foarte asemănător cu cel folosit la problema nrapp.
  3.  
  4. De asemenea, vom calcula un vector de sume parțiale sum care va reține în poziția i lățimea primelor i blocuri.
  5.  
  6. În urma calculării acestor vectori, pornim cu o arie maximă egală cu 0 și iterăm de la 1 până la n, actualizând, dacă este nevoie, valoarea maximă cu v[i] * (sum[D[i]-1] - sum[S[i]]).
  7.  
  8. Complexitatea finală: O(n) amortizat.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement