Pagini recente » Monitorul de evaluare | Diferente pentru utilizator/8andrewe4222eb1 intre reviziile 2 si 1 | Diferente pentru problema/mere intre reviziile 12 si 16 | Diferente pentru problema/nkl intre reviziile 4 si 7 | Diferente pentru algoritmiada-2010/runda-finala/solutii/conexiuni intre reviziile 2 si 3
Nu exista diferente intre titluri.
Diferente intre continut:
h2(#conexiuni). 'Conexiuni':problema/conexiuni
Problema se rezolvă prin programare dinamică, mai precis $D[i][j]$ este lungimea celei mai lungi secvenţe comune ce se termină pe poziţia $i$ în primul şir, respectiv pe poziţia $j$ în al doilea şir. Recurenţa este $D[i][j] = D[i-1][j-1]+1$, dacă $A[i] = B[j]$, sau $0$ altfel. Odată ce am determinat pentru poziţiile $i$ şi $j$ cea mai lungă secvenţă, este clar că va trebui să adunăm la rezultat toate secvenţele ce au lungimea între $1$ şi cea mai mare lungime. Complexitatea finală este $O(N*M)$
Problema se rezolvă prin programare dinamică, mai precis $D[i][j]$ este lungimea celei mai lungi secvenţe comune ce se termină pe poziţia $i$ în primul şir, respectiv pe poziţia $j$ în al doilea şir. Recurenţa este $D[i][j] = D[i-1][j-1]+1$, dacă $A[i] = B[j]$, sau $0$ altfel. Odată ce am determinat pentru poziţiile $i$ şi $j$ cea mai lungă secvenţă, este clar că va trebui să adunăm la rezultat toate secvenţele ce au lungimea între $1$ şi cea mai mare lungime. Complexitatea finală este $O(N*M)$. Problema mai admite si o alta solutie bazata pe algoritmul KMP, tot in complexitate $O(N*M)$, care obtine 100 puncte. O alta solutie bazata pe Rabin-Karp, desi mentinand complexitatea la $O(N*M)$, merge in practica foarte greu datorita operatiilor modulo care trebuiesc efectuate si se pare ca nu poate obtine prea usor 100 puncte.
Nu exista diferente intre securitate.
Topicul de forum nu a fost schimbat.