Afişează mesaje
|
Pagini: 1 2 3 [4] 5 6 ... 20
|
85
|
infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 094 Hotel
|
: Aprilie 08, 2008, 21:50:25
|
faci un arbore de intervale. pentru fiecare nod ce deserveste intevalul [p.q] vei tine 3 informatii:
1. lungimea celui mai mare interval de camere libere pentru nodul respectiv (l_curr). 2. lungimea celui mai mare interval de camere libere care incepe in p (l_left). 3. lungimea celui mai mare interval de camere libere care se termina in q (l_right).
cand faci update ai 2 cazuri:
1. daca nodul tau este inclus in intervalul pe care faci update, atunci modifici cele 3 valor. 2. daca nodul tau nu este inclus in intervalul pe care faci update, atunci ii modifici valorile in functie de l_curr, l_left si l_right ai fiilor sai. este clar ca poti unii cei doi fii daca exista un interval liber care se termina in capatul din dreapta al fiului stang si un alt interval liber care incepe in capatul stanga al fiului drept.
|
|
|
88
|
infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 695 Suma3
|
: Aprilie 07, 2008, 16:06:45
|
tine o matrice P[i,j] = i*j. in loc sa aduni k*A[i,j] in back, aduni P[k, A[i,j] ]. k poate sa fie maxim pana la 32, deci ar trebui sa intre. de obicei folosesc astfel de optimizari cand imi iese din timp cu foarte putin. sper sa te ajute.
|
|
|
92
|
infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 027 Loto
|
: Aprilie 06, 2008, 16:32:34
|
ai cateva mici scapari: 1) linia 103: in vectorul sum ai introdus l (l>=n) elemente. 2) linia 133: if (sum[mij][0]>caut) b=mij-1; if (sum[mij][0]<caut) a=mij+1; fie pui si evalitatea la unul din if-uri, fie in loc de al doilea if pui else 3) sumele din sirul tau pot fi mai mari decat S, deci o sa iterezi for-ul de la 103 pana cand S devine mai mica dacat suma curenta. (altfel diferenta o sa fie negativa, deci nu se va gasi in sirul tau, si vei face niste cautari inutile) ca sa te lamuresti mai bine poti sa consulti sursa cu modificarile de mai sus. spor in continuare.
|
|
|
100
|
infoarena - concursuri, probleme, evaluator, articole / Arhiva educationala / Răspuns: 000 Algoritmul lui Euclid
|
: Aprilie 04, 2008, 18:12:35
|
poti sa folosesti. teoretic merge mai repede cu streamuri. Din contra, streamurile merg mai repede. Lui victor ii ia foarte mult afisarea pentru ca foloseste 'endl'. Acesta din urma goleste bufferul dupa fiecare numar afisat. In locul lui ar trebui folosit '\n'. Lui wefgef cred ca ii merge incet pentru ca foloseste obiectele 'cin' si 'cout', care probabil nu sunt optimizate pentru citirea si respectiv scrierea in fisiere (posibil sa aibe un buffer mai mic sau deloc).
uite-te peste sursele de care vorbeste Filip ca sa te lamuresti
|
|
|
|