Pagini: [1]   În jos
  Imprimă  
Ajutor Subiect: problema dinamica  (Citit de 1315 ori)
0 Utilizatori şi 1 Vizitator pe acest subiect.
AlexandruValeanu
Vorbaret
****

Karma: 29
Deconectat Deconectat

Mesaje: 167



Vezi Profilul
« : Aprilie 05, 2013, 10:36:12 »

Am gasit o problema de dinamica pe campion: http://campion.edu.ro/arhiva/index.php?page=problem&action=view&id=616
Citat
Fie A si B doua siruri formate din maxim 1000 litere mici ale alfabetului englez.

Un subsir al unui sir este format din caractere (nu neaparat consecutive) ale sirului respectiv, în ordinea în care acestea apar în sir.

Cerinta

Scrieti un program care sa determine cel mai scurt subsir al sirului A, care nu este subsir al sirului B.

Stiu relatia de recurenta la cel mai lung subsir comun dar nu stiu cum sa o adaptez pentru acest caz...
Cod:
for ( int i = 1; i <= lgA; i++ )
        for ( int j = 1; j <= lgB; j++ )
            if ( A[i] != B[j] )
                D[i][j] = D[i - 1][j - 1] + 1;
            else
                D[i][j] = min ( D[i][j - 1], D[i - 1][j] );
Recurenta de mai sus este cea la care m-am gandit dar merge pe majoritatea testelor.
« Ultima modificare: Aprilie 05, 2013, 13:39:09 de către Alexandru Valeanu » Memorat
deneo
Vorbaret
****

Karma: 185
Deconectat Deconectat

Mesaje: 160



Vezi Profilul
« Răspunde #1 : Aprilie 05, 2013, 20:53:59 »

Citat
Recurenta de mai sus este cea la care m-am gandit dar merge pe majoritatea testelor.
wut? esti obosit Tongue

Cod:
for ( int i = 1; i <= lgA; i++ )
        for ( int j = 1; j <= lgB; j++ )
            if ( A[i] != B[j] )
                D[i][j] = D[i - 1][j - 1] + 1;
            else
                D[i][j] = min ( D[i][j - 1], D[i - 1][j] );

Recurenta ta e complet gresita. Nu merge pur si simplu sa faci pe "invers" cmlsc Smile
Ti-am trimis PM
Memorat
PlayLikeNeverB4
Nu mai tace
*****

Karma: 212
Deconectat Deconectat

Mesaje: 721



Vezi Profilul
« Răspunde #2 : Aprilie 05, 2013, 22:29:19 »

De ce PM? Poate sunt si altii curiosi.
Memorat
Pagini: [1]   În sus
  Imprimă  
 
Schimbă forumul:  

Powered by SMF 1.1.19 | SMF © 2006-2013, Simple Machines