Sunteți pe pagina 1din 2

Ministerul Educaiei si Cercetrii Stiintifice

Olimpiada Judeean de Informatic


12 martie 2016

Clasa a X-a

Problema miting descrierea solutiei


Autor: prof. Constantin Glan
C. N. Liviu Rebreanu Bistria
Cerina 1. (20 puncte)
Se menin patru variabile: imin, jmin, imax, jmax reprezentnd coordonatele colului stnga
sus, respectiv colul dreapta jos a dreptunghiului care include toate literele cuvantului cuv. Aceste
variabile se actualizeaz odat cu citirea matricei de caractere. Aria maxim va fi:
A = (imax imin + 1) * (jmax jmin + 1)
Cerina 2. (80 de puncte)
Problema impune restricia ca dou litere aflate n maini diferite sau dou secvene de litere
aflate n dou maini diferite s se poat reuni numai dac toate literele aflate n cele dou maini se pot
la rndul lor rearanja ca o secven a cuvntului. Numerotm zonele accesibile ale matricei astfel nct
numerele de ordine 1 ... nc s corespund zonelor corespunztoare poziiilor iniiale ale literelor
cuvntului, respectnd ordinea din cuvnt. Pentru restul zonelor accesibile ordinea de numerotare nu
este important.
S presupunem c dorim s reunim n aceeai main, literele cuv[i...j], unde i i j sunt
poziii n cuvnt. Costul reunirii depinde i de zona x n care dorim s le aducem. Definim c[i][j]
[x] consumul minim pentru a unifica cuv[i...j] n zona cu numrul de ordine x. Fie nc numrul
de caractere ale cuvntului. Secvena cuv[i...j] obinut ntr-o main n zona x provine prin
reunirea literelelor provenind din dou maini: prima avnd literele cuv[i...k], iar a doua literele
cuv[k + 1...j]. Consumul minim de combustibil c[i][j][x] necesar pentru ca dou maini s
ajung n mod independent n zona x (Fig 1) este:
c[i][j][x] = min(c[i][k][x], c[k + 1][j][x])
1 i < nc, i < j, i < k < j, nc < x n * n

Ministerul Educaiei si Cercetrii Stiintifice


Olimpiada Judeean de Informatic
12 martie 2016

Clasa a X-a

ns drumul minim al celor dou maini pn n zona x poate avea o poriune comun ncepnd cu zona
y. n acest caz se literele se reunific n zona y. Una dintre cele doua maini se oprete n y, iar
consumul transportului pn n x scade corespunzator consumului unei maini pe drumul comun
( Fig 2).

Valoarea c[i][j][x] se poate ajusta (eventual scade) rulnd un algoritm de cost minim (Lee)
. Dac y e zon vecin cu x, atunci:
c[i][j][x] = min(c[i][j][x], c[i][j][y] + 1)
n rezumat: mai nti se determin consumurile minime pentru transportul fiecrei litere a
cuvntului n fiecare celul x a matricei cu un algortim de tip Lee. Pe baza acestor rezultate, se
determin consumurile minime pentru a reuni cte dou litere consecutive ale cuvntului n fiecare
celul x a matricei. Urmeaz determinarea consumurilor minime pentru reunirea a trei litere consecutive
folosind valori calculate pentru secvene mai scurte, i aa mai departe. n final, se determin
consumurile minime pentru a reuni toate literele cuvntului n fiecare celul x. Rspunsul este minimul
acestor ultime valori.
Generarea tuturor secvenelor de lungimi 1, 2, , nc necesit nc*(nc+1)/2 operaii. Pentru
fiecare asemenea operaie, se aplic un algoritm de tip Lee, de complexitate O(n3). Complexitatea
final este O(nc2*n3).

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