Vizualizare soluţie

Titlul problemei: atac
Numărul problemei: 1
Runda:
Soluţie: Problema se rezolva cu un algoritm sweep, semanand cu

problema mai cunoscuta de a afla aria reuniunii unor dreptunghiuri.

Se tine o lista de "evenimente" - segmente verticale care "incep"

un dreptunghi si care "termina" un dreptunghi (considerand

inceputul/sfarsitul pe orizontala). Aceasta lista de segmente

verticale se sorteaza dupa X si apoi se parcurge. Se tine o structura

care suporta adaugare/scadere pe intervale si interogare de maxim (si

numar de valori unde se atinge maximul). Solutia oficiala foloseste

un arbore de intervale. Intre doua evenimente, se interogheaza maximul

si eventual se innoieste maximul global si aria.

Complexitate: O(NlogN)

La evaluare, pentru fiecare test s-au acordat 10 puncte.

Din arhiva de teste lipseste ultimul test, din cauza dimensiunii. Il pot trimite la cerere prin e-mail.

Înapoi

© 2002 - 2012. Realizat de Liviu Vâlsan. Administrat de Vlad Manea   XHTML   CSS