Sunteți pe pagina 1din 1

MINISTERUL EDUCAIEI, CERCETRII, TINERETULUI I SPORTULUI

INSPECTORATUL COLAR JUDEEAN CONSTANA


OLIMPIADA NAIONAL DE INFORMATIC
5 11 APRILIE 2010

Problema Diff, student Cosmin Gheorghe


Descrierea solutiei

Se poate usor observa ca daca inlcuim fiecare numar 0 din sir cu -1 problema se
reduce la a gasi un interval de suma egala cu Ki, pentru fiecare query. De
asemenea suma maxima posibila ce se poate obtine este egala cu N si suma
minima posibila este egala cu -N. Asadar exista maxim 2*N sume posibile. Daca
am reusi sa precalculam cate un interval pentru fiecare suma posibila (sau -1
daca suma nu se poate obtine) am putea raspunde la fiecare intrebare in timp
O(1). Pentru aceasta vom proceda in felul urmator. O sa calculam sirul sumelor
partiale Si, unde fiecare Si reprezinta suma primelor i elemente. Calculam pe
rand toate sumele ce se pot obtine cu primele i elemente pentru orice i <= N.
Observam ca daca avem sumele posibile pentru primele i elemente, cand vrem
sa calculam sumele obtinute cu primele i + 1 elemente trebuie doar sa adaugam
sumele noi obtinute ce se termina in pozitia i + 1. Daca ne uitam la suma de pe
un interval ca diferenta dintre doua elemente din sirul de sume partiale, toate
sumele noi posibile vor fi de forma Si+1 - Sj (cu j < i+1). Pentru ca elementul de
pe pozitia i+1 este egal ori cu +1 sau -1, se observa ca singurele sume partiale
Sj care pot forma sume noi trebuie sa fie ori maximul ori minimul dintre toate Sj-
urile. Asadar trebuie doar sa retinem suma maxima si minima partiala ce apare
inaintea pozitiei i+1, si sa verificam pentru fiecare dintre aceasta daca sumele
generate de ele nu au fost obtinute inainte. Pentru a gasi usor o suma deja
obtinuta sau nu vom folosi un vector de frecventa si inca doi vectori pentru a
retine pozitiile secventelor ce genereaza sumele respective. Dupa ce
precalculam toate aceste valori putem raspunde la fiecare intrebare in timp O(1).

Aceasta solutie are complexitatea O(N + M).

S-ar putea să vă placă și

  • Taxe Comisioane
    Taxe Comisioane
    Document8 pagini
    Taxe Comisioane
    catalin mocanu
    Încă nu există evaluări
  • Orar3CC 5
    Orar3CC 5
    Document1 pagină
    Orar3CC 5
    Madison Gillies
    Încă nu există evaluări
  • Orar 2 CA
    Orar 2 CA
    Document1 pagină
    Orar 2 CA
    Andrei Topala
    Încă nu există evaluări
  • Orar 4 C3
    Orar 4 C3
    Document1 pagină
    Orar 4 C3
    Andrei Topala
    Încă nu există evaluări
  • Orar 4 C1
    Orar 4 C1
    Document1 pagină
    Orar 4 C1
    Andrei Topala
    Încă nu există evaluări
  • Orar3CC 5
    Orar3CC 5
    Document1 pagină
    Orar3CC 5
    Madison Gillies
    Încă nu există evaluări
  • Orar 2 AA
    Orar 2 AA
    Document1 pagină
    Orar 2 AA
    Andrei Topala
    Încă nu există evaluări
  • Orar 4 C1
    Orar 4 C1
    Document1 pagină
    Orar 4 C1
    Andrei Topala
    Încă nu există evaluări
  • Orar 3 AB
    Orar 3 AB
    Document1 pagină
    Orar 3 AB
    Andrei Topala
    Încă nu există evaluări
  • Anunt Cazare Octombrie 2020
    Anunt Cazare Octombrie 2020
    Document2 pagini
    Anunt Cazare Octombrie 2020
    Vlad Andrei
    Încă nu există evaluări
  • Orar 4 C4
    Orar 4 C4
    Document1 pagină
    Orar 4 C4
    Andrei Topala
    Încă nu există evaluări
  • Orar 2 CA
    Orar 2 CA
    Document1 pagină
    Orar 2 CA
    Andrei Topala
    Încă nu există evaluări
  • Orar 1 CA
    Orar 1 CA
    Document1 pagină
    Orar 1 CA
    Andrei Topala
    Încă nu există evaluări
  • Orar3CC 5
    Orar3CC 5
    Document1 pagină
    Orar3CC 5
    Madison Gillies
    Încă nu există evaluări
  • Lista de Limite Orare (B) Incepand Cu 15 Decembrie
    Lista de Limite Orare (B) Incepand Cu 15 Decembrie
    Document4 pagini
    Lista de Limite Orare (B) Incepand Cu 15 Decembrie
    Andrei Topala
    Încă nu există evaluări
  • Asdfdasfadfasfas
    Asdfdasfadfasfas
    Document10 pagini
    Asdfdasfadfasfas
    Andrei Topala
    Încă nu există evaluări
  • Adasdasdasdasdasd
    Adasdasdasdasdasd
    Document13 pagini
    Adasdasdasdasdasd
    Andrei Topala
    Încă nu există evaluări
  • Asdfdasfadfasfas
    Asdfdasfadfasfas
    Document10 pagini
    Asdfdasfadfasfas
    Andrei Topala
    Încă nu există evaluări
  • Lista de Limite Orare (B) Incepand Cu 15 Decembrie
    Lista de Limite Orare (B) Incepand Cu 15 Decembrie
    Document4 pagini
    Lista de Limite Orare (B) Incepand Cu 15 Decembrie
    Andrei Topala
    Încă nu există evaluări
  • Cum e Cu Putinta Ceva Nou Si Problema e PDF
    Cum e Cu Putinta Ceva Nou Si Problema e PDF
    Document12 pagini
    Cum e Cu Putinta Ceva Nou Si Problema e PDF
    Andrei Topala
    Încă nu există evaluări
  • Teorema Lui Coock
    Teorema Lui Coock
    Document10 pagini
    Teorema Lui Coock
    Mihai Ilie
    Încă nu există evaluări
  • Adasdsa
    Adasdsa
    Document56 pagini
    Adasdsa
    Andrei Topala
    Încă nu există evaluări
  • Jhguyguyg
    Jhguyguyg
    Document4 pagini
    Jhguyguyg
    Andrei Topala
    Încă nu există evaluări
  • Asdga
    Asdga
    Document3 pagini
    Asdga
    Andrei Topala
    Încă nu există evaluări
  • Neo Modernism
    Neo Modernism
    Document2 pagini
    Neo Modernism
    Iulia Gheorghe
    Încă nu există evaluări
  • Asdga
    Asdga
    Document3 pagini
    Asdga
    Andrei Topala
    Încă nu există evaluări
  • Adasdasd
    Adasdasd
    Document2 pagini
    Adasdasd
    Andrei Topala
    Încă nu există evaluări
  • Adasdasdasdasda
    Adasdasdasdasda
    Document2 pagini
    Adasdasdasdasda
    Andrei Topala
    Încă nu există evaluări
  • Setul 4
    Setul 4
    Document5 pagini
    Setul 4
    Andrew Dawn
    Încă nu există evaluări
  • Rezolvare V100 SB 2 2009
    Rezolvare V100 SB 2 2009
    Document3 pagini
    Rezolvare V100 SB 2 2009
    Lokadanii
    Încă nu există evaluări