Titlul: 560 Abc2 Scris de: Adrian Diaconu din Noiembrie 19, 2007, 00:06:42 Aici puteţi discuta despre problema Abc2 (http://infoarena.ro/problema/abc2).
Titlul: Răspuns: 560 Abc2 Scris de: Ionescu Vlad din Aprilie 01, 2008, 19:31:31 Nu reusesc nicicum sa iau testele 8 si 9. Restul intra in sub o secunda, la astea primesc TLE. Folosesc 2 hashuri. Imi dati va rog o sugestie?
Titlul: Răspuns: 560 Abc2 Scris de: Bogdan-Alexandru Stoica din Aprilie 02, 2008, 10:33:06 parseaza citirea. eu asa am facut ca sa intre in timp.
Titlul: Răspuns: 560 Abc2 Scris de: Ionescu Vlad din Aprilie 02, 2008, 12:08:59 Cum adica sa parsez citirea, aici? Citesc cu fgets sirul initial si apoi fiecare cuvant in parte tot cu fgets. Daca trimit doar citirea cel mai mare timp e 0.6 pe testul 8. Se poate mai rapid?
Titlul: Răspuns: 560 Abc2 Scris de: Bogdan-Alexandru Stoica din Aprilie 02, 2008, 14:04:32 ma refeream sa citesti intr-un buffer cu gets tot inputul si apoi sa citesti caracter cu caracter din buffer, dar cred ca e acelasi lucru ca si cum ai face fu gets (mie nu imi intra ca foloseam scanf...). eu am facut alt smen ca sa intre in timp. tu ce parte a inputului "hashuesti" ?
Titlul: Răspuns: 560 Abc2 Scris de: Andrei Grigorean din Aprilie 02, 2008, 14:08:23 Poti sa scrii cuvintele in baza 3, sortezi sirul care iti rezulta si apoi cauti binar.
Titlul: Răspuns: 560 Abc2 Scris de: Ionescu Vlad din Aprilie 02, 2008, 15:15:59 A intrat asa :). Mersi!
Titlul: Răspuns: 560 Abc2 Scris de: Bogdan-Alexandru Stoica din Aprilie 02, 2008, 23:20:47 Poti sa scrii cuvintele in baza 3, sortezi sirul care iti rezulta si apoi cauti binar. mie nu mi-a intrat asa... eu fac hash pe dictionar, si pentru un cuvant atribui doua valori : hashul cu functia lui Mircea (aia pe care nu o tineai tu minte) si reprezentarea cuvantului in baza 3. daca am o coliziune cresc prima valoare pana cand dau peste un numar nefolosit sau pana cand dau peste un numar folosit, dar care retine cuvinte cu aceeasi reprezentare in baza 3. Titlul: Răspuns: 560 Abc2 Scris de: Andrei Grigorean din Aprilie 02, 2008, 23:53:17 Ai bagat cu cautarea binara ai lui patrascu?
Titlul: Răspuns: 560 Abc2 Scris de: Bondane Cosmin din Aprilie 03, 2008, 08:02:23 Ai bagat cu cautarea binara ai lui patrascu? Mie mi-a mers fara cautarea binara lui patrascu, folosind o constanta mai mica pentru hash. Titlul: Răspuns: 560 Abc2 Scris de: Bogdan-Alexandru Stoica din Aprilie 03, 2008, 08:32:22 Ai bagat cu cautarea binara ai lui patrascu? Nu. Am facut cautare binara clasica. Titlul: Răspuns: 560 Abc2 Scris de: Ionescu Vlad din Aprilie 03, 2008, 11:59:28 Mie mi-a intrat cu cautare binara clasica.
Care e "hashul cu functia lui Mircea"? Titlul: Răspuns: 560 Abc2 Scris de: Bogdan-Alexandru Stoica din Aprilie 04, 2008, 09:41:43 alegi un numar prim foarte mare (p) si functia hash pentru un numar x este (x*P)>>(32-nrb), unde nrb este numarul de biti semnificativi pe care trebuie sa-i pastrezi.
Titlul: Răspuns: 560 Abc2 Scris de: Parfene Narcis din Aprilie 10, 2009, 20:06:37 Obtin corect la 6 teste din 10, restul sunt TLE. Imi da si averismentul asta:
Compilare: /tmp/ccai038i.o: In function `main': user.cpp:(.text+0xb6): warning: the `gets' function is dangerous and should not be used. Poate sa-mi zica cineva ce e asta? As vrea sa stiu ce pot folosi in loc de gets Titlul: Răspuns: 560 Abc2 Scris de: Sima Cotizo din Aprilie 10, 2009, 20:09:45 Poate sa-mi zica cineva ce e asta? As vrea sa stiu ce pot folosi in loc de gets fgets( sir, dimensiune, stdin ); :thumbup:Titlul: Răspuns: 560 Abc2 Scris de: Emanuel Cinca din Aprilie 29, 2009, 14:53:27 Am incercat sa rezolv folosind KMP. Nu ma astept la punctaj maxim (multe TLE-uri :P ), dar ce e gresit in rezolvarea asta:
-citesc pe rand fiecare cuvant si fac KMP pentru el; -retin intr-un vector fiecare pozitie candidata; -sortez vectorul cu pozitii canditate si numar cate elemente diferite am in el; -afisez. Titlul: Răspuns: 560 Abc2 Scris de: Gafton Mihnea Alexandru din Septembrie 17, 2015, 23:02:00 Salut, m-am uitat pe niste surse mai vechi cu cautare binara si numere in baza 3 si observ ca timpul de executie este cu mult peste limita(presupun ca limita a scazut intre timp). Stie cineva daca in noile limite intra cumva solutia cu cautare binara?:D
Multumesc anticipat! |