Pagini: [1] 2 3   În jos
  Imprimă  
Ajutor Subiect: 005 Potrivirea sirurilor  (Citit de 38509 ori)
0 Utilizatori şi 1 Vizitator pe acest subiect.
bogdan2412
Echipa infoarena
Nu mai tace
*****

Karma: 410
Deconectat Deconectat

Mesaje: 951



Vezi Profilul
« : Februarie 26, 2008, 18:01:29 »

Aici puteti discuta despre problema Potrivirea sirurilor.
Memorat
Viksen
Strain


Karma: 10
Deconectat Deconectat

Mesaje: 20



Vezi Profilul
« Răspunde #1 : Martie 17, 2008, 21:37:16 »

nush daca e ceva evident si sunt eu neatent, dar nu inteleg de ce iau SIGSEV. am luat cateva teste si acasa imi merg. e ceva cu evaluatorul sau e de la mine?  Confused
Memorat

going UP !...
bogdan2412
Echipa infoarena
Nu mai tace
*****

Karma: 410
Deconectat Deconectat

Mesaje: 951



Vezi Profilul
« Răspunde #2 : Martie 17, 2008, 21:41:39 »

Ai depasit limita de memorie..
Memorat
Viksen
Strain


Karma: 10
Deconectat Deconectat

Mesaje: 20



Vezi Profilul
« Răspunde #3 : Martie 17, 2008, 21:55:49 »

ms mult bogdan!
Memorat

going UP !...
free2infiltrate
Strain
*

Karma: -25
Deconectat Deconectat

Mesaje: 41



Vezi Profilul
« Răspunde #4 : Martie 31, 2008, 20:34:55 »

uitativa va rog si peste aceasta sursa  "job #168935"  si spunetimi cu as putea sa maresc viteza, pt ca eu nu ma incadrez in timp la 2 teste (banuiesc ca problema apare de la citirea datelor din fisier)  sad
Memorat
wefgef
Nu mai tace
*****

Karma: 1049
Deconectat Deconectat

Mesaje: 3.008


razboinicu' luminii


Vezi Profilul
« Răspunde #5 : Martie 31, 2008, 21:22:31 »

Cu seekeoln in loc de eoln iei 80.

Am trimis doar citirea si de abia se incadreaza in 296 de ms, deci e clar ca trebuie sa citesti altfel. Incearca cu blockread.
« Ultima modificare: Martie 31, 2008, 21:30:21 de către Andrei Grigorean » Memorat

omului i-au fost date instinctele pentru a supravietui, nu pentru a fi sclavul lor.
fogab
Strain


Karma: 0
Deconectat Deconectat

Mesaje: 14



Vezi Profilul
« Răspunde #6 : Aprilie 02, 2008, 16:18:20 »

Am incercat sa implementez si sa testez cateva variatii cu o solutie cu hashuri.. si anumite lucruri nu mi se par clare  Eh?
 - scanf mai repede decat getline?   Confused am mai gasit informatii referitoare le problema, incepand cu versiunile GNU G++ 2.7.x  functiile IO din C++ sunt (mult) mai lente.. (iar testand aceeasi surse in VC++  rezultatele sunt opuse  - getline aprox. 2 ori mai rapida)..  limita e cam stransa.. oricum o solutie naiva nu se-ncadreaza in timp, deci mi se pare timpul de executie "fortata"
 - chiar daca doua valori hash asociati pt doi subsiruri sunt egali, totusi exista o sansa ca ele sa nu fie identice; de aceea, de obicei se implementeaza o testare "caracter-cu-caracter"; dar o astfel de sursa NU se incadreaza in timp...chiar daca verificarea e facuta pe baza a mai multori functii hash, solutia pierde din generalitatea sa, avand o complexitate O(N) "fortata" - si in unele cazuri chiar va fi mai optima decat KMP
Memorat
devilkind
Echipa infoarena
Nu mai tace
*****

Karma: 284
Deconectat Deconectat

Mesaje: 1.240



Vezi Profilul
« Răspunde #7 : Aprilie 02, 2008, 18:43:17 »

pai kmp intra in timp fara nici o problema deci limita de timp nu e stransa. e numai buna ptr a impiedica solutiile cu hash Wink
Memorat
bogdan2412
Echipa infoarena
Nu mai tace
*****

Karma: 410
Deconectat Deconectat

Mesaje: 951



Vezi Profilul
« Răspunde #8 : Aprilie 02, 2008, 18:53:52 »

Probabilistic sansele gasirii unei aparitii proaste sunt destul de mici. De exemplu daca iei 2 module in jurul valorilor de 1 miliard, respectiv 2 miliarde, prime intre ele, valoarea hashului este determinata unic modulo 2 * 10^18. Deci N (2 milioane) valori se distribuie asupra unui interval de 2 * 10^18. => e probabilitate mica sa gasesti aparitii proaste Smile. In situatii reale sunt folositi destui algoritmi de aproximare pentru ca raportul intre erori si timpul de rulare salvat este extrem de mic.

Sursa mea cu rabin karp intra in 0.2 nu credeam ca o sa fie probleme Tongue singura problema cu limita de timp e ca nu cred ca exista vreo sursa in pascal care sa ia 100.
« Ultima modificare: Aprilie 02, 2008, 19:10:04 de către Bogdan Tataroiu » Memorat
stocarul
Nu mai tace
*****

Karma: 49
Deconectat Deconectat

Mesaje: 203



Vezi Profilul
« Răspunde #9 : Februarie 20, 2009, 22:58:59 »

Am si eu o problema cu sursa:

http://infoarena.ro/job_detail/263927?action=view-source

Imi greseste cateva teste, si nu vad de ce Sad......

Le: am descoperit pana la urma ce greseam.
« Ultima modificare: Februarie 20, 2009, 23:23:34 de către Cosmin Mihai Tutunaru » Memorat
Ecthor
Strain


Karma: 0
Deconectat Deconectat

Mesaje: 1



Vezi Profilul
« Răspunde #10 : Aprilie 01, 2009, 21:23:54 »

Sunt si eu curios cum ar merge cu "blockread". Nu am inteles foarte bine sintaxa.Din cate am vazut eu, lungimea sirului nu trebuie sa fie mai mare de integer pentru a-l folosi.
Memorat
razyelx
Client obisnuit
**

Karma: 0
Deconectat Deconectat

Mesaje: 82



Vezi Profilul
« Răspunde #11 : Aprilie 06, 2009, 15:00:03 »

Puteti sa imi explicati si mie cum functioneaza KMP ca citesc aici in cartea lui Cerchez de vreo 4 ore si nu inteleg ce se face cu functia aia prefix, ce isneamna valorile din vectorul respectiv s.a.m.d.
Memorat
Mishu91
Nu mai tace
*****

Karma: 169
Deconectat Deconectat

Mesaje: 751



Vezi Profilul
« Răspunde #12 : Aprilie 06, 2009, 15:06:48 »

valoare din pi[ i ] reprezinta cel mai lung prefix al sirului care e sufix al sirului S[ 1 ]S[ 2 ]...S[ i ].
De ex pt sirul a  a c b a  t a  a sirul de prefixe va arata asa.
                      0 1 0 0 1 0 1 2
Memorat
pauldb
Nu mai tace
*****

Karma: 821
Deconectat Deconectat

Mesaje: 1.901



Vezi Profilul
« Răspunde #13 : Aprilie 07, 2009, 00:56:00 »

Puteti sa imi explicati si mie cum functioneaza KMP ca citesc aici in cartea lui Cerchez de vreo 4 ore si nu inteleg ce se face cu functia aia prefix, ce isneamna valorile din vectorul respectiv s.a.m.d.

Din cartea doamnei Cerchez.
Memorat

Am zis Mr. Green
razyelx
Client obisnuit
**

Karma: 0
Deconectat Deconectat

Mesaje: 82



Vezi Profilul
« Răspunde #14 : Aprilie 07, 2009, 11:38:20 »

ahhh... scuze. Ai dreptate, cu toate ca am stat 3 ore sa inteleg de ce algoritmul KMP din cartea aia nu merge pe o problema realizand in final ca e gresit, fiind nevoit sa implementez solutia de pe infoarena.
Memorat
Haggis
Strain


Karma: 0
Deconectat Deconectat

Mesaje: 1



Vezi Profilul
« Răspunde #15 : Aprilie 07, 2009, 14:49:52 »

Daca are cineva timp, va rog sa va uitati si pe sursa asta http://infoarena.ro/job_detail/300572

Imi da incorect pe 7 teste, si ma holbez la ea de vreo ora da tot nu vad care e cauza.

Mersi.
Memorat
cosser
Strain
*

Karma: 4
Deconectat Deconectat

Mesaje: 39



Vezi Profilul
« Răspunde #16 : Aprilie 16, 2009, 17:47:31 »

Razvan (Haggis), fii atent la functia kmppre(). Esti sigur ca o faci corect? variabila j o scazi numai odata.
Memorat
AnDrEwBoY
Strain
*

Karma: 4
Deconectat Deconectat

Mesaje: 36



Vezi Profilul
« Răspunde #17 : Iulie 16, 2009, 12:04:42 »

Exista posibilitatea ca |A| > |B| ? Testul 49 asa cred ca este d'oh!
Memorat
pauldb
Nu mai tace
*****

Karma: 821
Deconectat Deconectat

Mesaje: 1.901



Vezi Profilul
« Răspunde #18 : Iulie 16, 2009, 13:05:02 »

Daca nu se specifica nimic la restrictii, trebuie sa iei in considerare si acest caz.

Totusi, daca te-ai fi uitat pe ok-ul testului 49, ai fi vazut ca raspunsul e 1. (Testele sunt publice la arhiva educationala.)
Memorat

Am zis Mr. Green
cipriancx
Strain


Karma: -1
Deconectat Deconectat

Mesaje: 13



Vezi Profilul
« Răspunde #19 : Ianuarie 12, 2010, 10:44:35 »

Am o mica problema la sursa Rabin Karp propusa.
La linia 55 si anume:
hash1 = ((hash1 - (B[i - NA] * P1) % MOD1 + MOD1) * P + B[ i]) % MOD1;

nu inteleg rostul acelui +MOD1 pentru ca atunci cand facem modulo MOD1 acel +MOD1 ar trebui sa fie echivalent cu +0.
Am incercat sa inlocuiesc respectiva linie cu:
hash1 = ((hash1 - (B[i - NA] * P1) % MOD1) * P + B[ i]) % MOD1; iar rezultatul a fost ca mi-ai iesit foarte putine teste.
Imi poate explica cineva cu ce influenteaza acel MOD1?

[editat de moderator] atentie la "[ i]" (fara spatiu), care este un tag special
« Ultima modificare: Ianuarie 13, 2010, 17:25:32 de către Sima Cotizo » Memorat
blasterz
Nu mai tace
*****

Karma: 92
Deconectat Deconectat

Mesaje: 255



Vezi Profilul
« Răspunde #20 : Ianuarie 12, 2010, 12:13:08 »

Am o mica problema la sursa Rabin Karp propusa.
La linia 55 si anume:
hash1 = ((hash1 - (B[i - NA] * P1) % MOD1 + MOD1) * P + B) % MOD1;

nu inteleg rostul acelui +MOD1 pentru ca atunci cand facem modulo MOD1 acel +MOD1 ar trebui sa fie echivalent cu +0.
Am incercat sa inlocuiesc respectiva linie cu:
hash1 = ((hash1 - (B[i - NA] * P1) % MOD1) * P + B) % MOD1; iar rezultatul a fost ca mi-ai iesit foarte putine teste.
Imi poate explica cineva cu ce influenteaza acel MOD1?



Tu ai scadere... daca restul iti da negativ nu e bine...asa ca adaugi un MOD1 ca sa devina pozitiv
Memorat
wefgef
Nu mai tace
*****

Karma: 1049
Deconectat Deconectat

Mesaje: 3.008


razboinicu' luminii


Vezi Profilul
« Răspunde #21 : Ianuarie 12, 2010, 12:50:56 »

Limbajul nu este atat de inteligent incat sa isi dea seama ca 0 <= X < P si X-P sunt congruente modulo P. Cu alte cuvinte, sa presupunem ca lucrezi mod 7. In matematica 6 si -1 sunt congruente modulo P. Aici insa daca ai un numar negativ si aplici modulo, rezultatul nu va fi cel asteptat.
Memorat

omului i-au fost date instinctele pentru a supravietui, nu pentru a fi sclavul lor.
Bogdan_tmm
De-al casei
***

Karma: 4
Deconectat Deconectat

Mesaje: 122



Vezi Profilul
« Răspunde #22 : Mai 22, 2010, 18:25:21 »

Daca am de exemplu sirurile :

cse adcse se

si vreau sa vad care din ele este sufix pentru abadcse. Dupa ce formez numarul lui abadcse cu rabin karp, incerc sa scap de cate o litera de la inceput folosind aceeasi schema ca si la potrivire de siruri dar fara sa mai inmultesc cu baza si sa adun alt element.
sir3=(sir3-(c[j]*Pow1)%MOD1+MOD1)%MOD1
Nu e buna solutia sau gresesc eu ceva?
Memorat
gorgovan
Strain
*

Karma: 8
Deconectat Deconectat

Mesaje: 37



Vezi Profilul
« Răspunde #23 : Iunie 30, 2010, 15:31:50 »

E normal ca atunci cand folosesc vector<int>(si deci ma bazez pe .size() pentru a-mi spune cate pozitii am gasit) si nu gasesc nici un sir sa primesc SIGSECV ? Cry
Memorat
Mishu91
Nu mai tace
*****

Karma: 169
Deconectat Deconectat

Mesaje: 751



Vezi Profilul
« Răspunde #24 : Iunie 30, 2010, 15:36:51 »

Nu am înțeles ce faci de primești SIGSEGV.
Memorat
Pagini: [1] 2 3   În sus
  Imprimă  
 
Schimbă forumul:  

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