Diferente pentru problema/dist intre reviziile #8 si #10

Nu exista diferente intre titluri.

Diferente intre continut:

Sa consideram doua propozitii formate din cuvinte scrise cu litere mari ale alfabetului englez, oricare doua cuvinte consecutive fiind separate de unul sau mai multe spatii. Sa consideram {$c=c{~1~}c{~2~}...c{~n~}$} si {$d=d{~1~}d{~2~}...d{~m~}$} doua cuvinte. Pentru a calcula distanta dintre cuvintele $c$ si {$d$}, notata {$dist(c,d)$}, cuvantul mai scurt se completeaza la sfarsit cu caracterul {$@$} (care are codul ASCII {$64$}), pana se obtin doua cuvinte de aceeasi lungime, apoi se calculeaza suma diferentelor absolute dintre codurile ASCII ale caracterelor situate in cuvintele $c$ si $d$ pe pozitii corespondente:
{$dist(c,d)=|c{~1~}-d{~1~}|+|c{~2~}-d{~2~}|+...+|c{~lg~}-d{~lg~}|$}, unde {$lg=max{n, m}$}.
 
Definim distanta dintre doua propozitii ca fiind suma distantelor dintre cuvintele situate in propozitii pe pozitii corespondente. Daca una dintre propozitii are mai putine cuvinte decat cealalta se considera ca la sfarsitul acestei propozitii se afla cuvinte vide (cuvinte de lungime {$0$}), pana la completarea numarului necesar de cuvinte.
 
De exemplu, sa consideram propozitia {$P{~1~}="ANA ARE MERE"$} si propozitia {$P{~2~}="VASILE NU"$}. Distanta dintre propozitia $P{~1~}$ si propozitia $P{~2~}$ este:
{$dist(P{~1~},P{~2~})=dist("ANA", "VASILE")+dist("ARE", "NU")+dist("MERE","")$}.
{$dist("ANA","VASILE")=|'A'{@-@}'V'|+|'N'{@-@}'A'|+|'A'{@-@}'S'|+|'@'{@-@}'I'|+|'@'{@-@}'L'|+|'@'{@-@}'E'|=$}
{$dist("ARE","NU")=|'A'{@-@}'N'|+|'R'{@-@}'U'|+|'E'{@-@}'@'|=|65{@-@}78|+|82{@-@}85|+|69{@-@}64|=13+3+5=21$}
{$dist("MERE","")=|'M'{@-@}'@'|+|'E'{@-@}'@'|+|'R'{@-@}'@'|+|'E'{@-@}'@'|=|77{@-@}64|+|69{@-@}64|+|82{@-@}64|+|69{@-@}64|=13+5+18+5=41.$}
Deci {$dist(P1,P2)=78+21+41=140$}
In scopul de a minimiza distanta dintre cele doua propozitii, asupra celei de a doua propozitii putem executa una sau mai multe operatii. O operatie consta in a muta prima litera dintr-un cuvant la sfarsitul cuvantului precedent (daca acesta exista) sau ultima litera dintr-un cuvant la inceputul cuvantului urmator. Cuvinte vide se pot afla doar la sfarsitul unei propozitii, nu si la inceputul sau in interiorul ei (nici in propozitiile date, nici in propozitiile obtinute in urma apli­carii operatiilor). Cuvintele din propozitie si cuvintele obtinute in urma operatiilor nu pot sa depaseasca $20$ de litere.
 
In scopul de a minimiza distanta dintre cele doua propozitii, asupra celei de a doua propozitii putem executa una sau mai multe operatii. O operatie consta in a muta prima litera dintr-un cuvant la sfarsitul cuvantului precedent (daca acesta exista) sau ultima litera dintr-un cuvant la inceputul cuvantului urmator.
 
Cuvinte vide se pot afla doar la sfarsitul unei propozitii, nu si la inceputul sau in interiorul ei (nici in propozitiile date, nici in propozitiile obtinute in urma aplicarii operatiilor). In momentul in care se efectueaza o mutare asupra unui cuvant de lungime 1 din interiorul propozitiei si acesta devine vid, acesta continua sa existe si mutarile efectuate asupra cuvintelor adiacente nu vor trece peste el. Spre exemplu din propozitia "A", "A", "A" putem ajunge in propozitia "AA", "", "A" si apoi in "AA", "A", "".
 
Cuvintele din propozitie si cuvintele obtinute in urma operatiilor nu pot sa depaseasca $20$ de litere.
h2. Cerinta
| ANA ARE   MERE
VASILE NU
| 62 9
|
|
| AA
A A A
| 1 2
|
h3. Explicatie
Propozitia a doua, dupa aplicarea celor $9$ operatii, este:
Pentru primul exemplu propozitia a doua, dupa aplicarea celor $9$ operatii, este:
{$V ASI LENU$}
== include(page="template/taskfooter" task_id="dist") ==
Pentru al doilea exemplu, solutia optima pentru a doua propozitia este $AA A$.
== include(page="template/taskfooter" task_id="dist") ==

Nu exista diferente intre securitate.

Topicul de forum nu a fost schimbat.