infoarena

infoarena - concursuri, probleme, evaluator, articole => .CAMPION => Subiect creat de: George Popoiu din Martie 04, 2010, 21:41:37



Titlul: Problema Cuvinte, ONI 2004 clasa a X-a
Scris de: George Popoiu din Martie 04, 2010, 21:41:37
Urmatoarea problema a fost data la ONI in 2004 si am gasit-o postata pe campion.

http://campion.edu.ro/arhiva/index.php?page=problem&action=view&id=922

Problema este ca nu reusesc sa imi explic solutia data ( complexitate O(N*K) ), care suna cam asa :
Citat
Cu toţii cunoaştem dinamica clasică a distanţei de editare (dacă nu, vezi Cormen). Problema e că rezolvarea clasica este O(N^2) (de fapt N*M, dar N si M sunt foarte apropiate ca valori). Noi trebuie să rezolvam insa in O(K*N).
Pentru aceasta observam ca din toata acea matrice nu ne trebuie decat K elemente in jurul diagonalei principale.
Orice element aflat in afara acestei benzi poate fi considerat infinit, pentru ca ajungerea in colt necesita cel putin K incrementari, deci rezultatul final va fi mai mare decat K.

Daca ati inteles rezolvarea, v-as ruga sa mi-o explicati si mie.

Multumesc !  :)


Titlul: Răspuns: Problema Cuvinte, ONI 2004 clasa a X-a
Scris de: Cosmin Negruseri din Martie 06, 2010, 16:10:17
Care parte nu o intelegi? Algoritmul in O(n * m)? Sau imbunatatirea lui la O(n * k)?


Titlul: Răspuns: Problema Cuvinte, ONI 2004 clasa a X-a
Scris de: George Popoiu din Martie 06, 2010, 17:40:48
Imbunatatirea ...


Titlul: Răspuns: Problema Cuvinte, ONI 2004 clasa a X-a
Scris de: Cosmin Negruseri din Martie 06, 2010, 21:39:54
Ideea e ca orice solutie pentru edit distance corespunde unui drum de la 0,0 la n-1,m-1. La fiecare pas poti ajunge de la i,j la i+1,j; i,j+1 sau i+1,j+1 cu un anumit cost. Acum un drum ce trece prin i,i + k + 1 va avea costul mai mare decat k, incearca sa vezi de ce, la fel si pentru i, i - k - 1. Astfel poti sa nu mai calculezi valorile respective si iti vor ramane de calculat pe fiecare linie i valorile de la indicele i - k pana la i + k. Asa obtii un algoritm de complexitate O(n * 2k)


Titlul: Răspuns: Problema Cuvinte, ONI 2004 clasa a X-a
Scris de: George Popoiu din Martie 07, 2010, 08:01:28
Da, acum am inteles, multumesc !  :thumbup: