Afişează mesaje
Pagini: [1] 2 3 4
1  infoarena - concursuri, probleme, evaluator, articole / Arhiva educationala / Răspuns: 227 Geometrie : Iulie 05, 2010, 15:20:22
Nu m-am uitat atent peste funcia ta de citire, imi pare rau.
Initial crezusem ca e vorba despre cum accesezi caracterele in array-ul in care le memorezi, facand un pas suplimentar pentru a trece de la '\n' la '\0'.
2  infoarena - concursuri, probleme, evaluator, articole / Arhiva educationala / Răspuns: 227 Geometrie : Iulie 04, 2010, 22:25:39
Te referi, probabil, la caracterul in functie de care te opresti din recursivitate, iar asta e un detaliu strict legat de implementarea algoritmului tau.
Trebuie sa te uiti mai atent peste notiunile de null-terminated string si line break si vei vedea ca iti vei putea face sursa, cu cateva modificari minore de indici, sa functioneze si cu '\n'  wink
3  infoarena - concursuri, probleme, evaluator, articole / Arhiva educationala / Răspuns: 034 Ciclu Eulerian : Martie 08, 2009, 01:20:04
Eu cred ca enuntul problemei ar trebui revizuit.

Un graf se numeste eulerian daca si numai daca este conex si gradul fiecarei nod este par.


Se poate discuta mult pe marginea definitiei; fiecare autor al unei lucrari de teoria grafurilor are particularitatile sale in definitii sau notatii. In cazul de fata, imi pare irelevanta orice obiectie, existand o corespondenta biunivoca intre multimea grafurilor care admit un ciclu eulerian si multimea grafurilor conexe ale caror noduri au toate gradele pare (este una dintre teoremele lui Euler).

Din considerente practice, mi se pare ca a defini grafurile euleriene ca fiind acele grafuri cu proprietatea P1, si a demonstra apoi ca ele au (necesar si suficient) proprietatea P2, este acelasi lucru cu a interschimba P1 si P2 in fraza anterioara. Din considerente teoretice, diferenta aceasta poate deveni importanta, insa, asa cum am spus, lucrarile de specialitate jongleaza prea mult cu termenii pentru a putea avea pretentia unei singure notatii corecte; in final, ramane doar o problema de terminologie.

4  infoarena - concursuri, probleme, evaluator, articole / Arhiva educationala / Răspuns: 028 Sortare prin comparare : Februarie 26, 2009, 00:12:54
Am facut evalul sa crape. Eroarea provine din faptul ca nu las spatiu la printare. (JOB #261387)

S-a rezolvat Wink
http://infoarena.ro/job_detail/266726
5  infoarena - concursuri, probleme, evaluator, articole / Arhiva educationala / Răspuns: 034 Ciclu Eulerian : Februarie 21, 2009, 00:23:33
fac un dfs prin tot graful si am un vector de vizitat pe muchii(nu pe noduri), In data ce nu mai pot merge nicaieri tiparesc nodul.

Algoritmul este practic acelasi: construiesc un ciclu si ma intorc pe el, intercaland toate ciclurile suplimentare. Implementarea este putin diferita (marcajele pe muchii) si merita mentionata intr-adevar ca si alternativa; ar fi ideal insa daca ai implementa si o varianta nerecursiva folosind aceeasi idee, pentru a avea o sursa de 100p, care se poate incadra in articolul de solutii. Wink

6  infoarena - concursuri, probleme, evaluator, articole / Arhiva educationala / Răspuns: 028 Sortare prin comparare : Ianuarie 24, 2009, 23:13:09
Am incercat vreo 5-6 sortari pana acuma si cum era de asteptat nu prea merg.
Una ia 100 - Introsortul din STL.
restul in cel mai bun caz 40.
Depinde mult de ce algoritmi ai incercat. Daca sunt neoptimi (Bubble Sort, Insertion Sort, Selection Sort etc) este normal sa nu ia punctaj maxim. Introsort, pe de alta parte, este unul dintre cei mai eficienti algoritmi de sortare cunoscuti si ar trebui sa se comporte cel mai bine.

Quicksort`urile pe care le-am incercat se apropie insa tot depasesc timpul la cateva teste.
Quicksort-urile trebuie implementate atent pentru punctaj maxim. Cu toate acestea, varianta din libraria standard C (functia qsort) obtine 100 de puncte, chiar daca nu este din cate stiu eu (aici s-ar putea sa gresec) cea mai fericita varianta de quicksort. Incearca sa te uiti la prezentarile de care vorbeam in rubrica 'Solutii' si sa imbunatatesti versiunile tale de quicksort.

Am o mica mare nelamurire. Algoritmul din articol (Merge Sort) da raspuns gresit pe testele "aproape sortate". De ce?
Merge Sort-ul din articol ia 100 de puncte daca e implementat atent. O sursa gasesti aici.

Cum se poate rezolva problema?
Cu orice algoritm de aici care are O(n log n) pe coloana "Worst" wink
7  infoarena - concursuri, probleme, evaluator, articole / Informatica / Răspuns: CLRS online : Mai 11, 2008, 19:27:05
Am dat search item si m-a dus aici http://gigapedia.org/items/41029/introduction-to-algorithms, da' nu e de download  sad

Asta e, din nou, prima versiune. Incearca aici http://gigapedia.org/items/408/introduction-to-algorithms--2nd-edition
Ca sa downloadezi de pe gigapedia, ai nevoie de cont. Dupa ce esti inregistrat, pentru fiecare item vei avea un tab "Links", unde apar linkuri pentru download Wink

@Stefan: Intr-adevar, nu apar diferente semnificative de continut. Cateva capitole sunt, totusi, aduse mai la zi (de exemplu, este descris Hopcroft-Karp pentru cuplaj; in CLR e doar amintit la sfarsitul unui capitol)
8  infoarena - concursuri, probleme, evaluator, articole / Informatica / Răspuns: CLRS online : Mai 11, 2008, 19:00:33
Technically speaking, acesta e CLR. O varianta de CLRS o poti downloada de pe gigapedia.org. Daca nu reusesti, spune-mi si o uploadez eu undeva Smile
9  infoarena - concursuri, probleme, evaluator, articole / Informatica / Răspuns: Automate finite : Aprilie 27, 2008, 13:30:45
Da, eu initial am pornit "cautarile" pentru a rezolva problema Strigat Very Happy - e o aplicatie foarte frumoasa la dinamica pe automat finit (felicitari Adrian!)
10  infoarena - concursuri, probleme, evaluator, articole / Arhiva educationala / Răspuns: 009 Algoritmul lui Dijkstra : Aprilie 26, 2008, 14:56:06
Daca parsezi citirea, se poate in C si cu Dijkstra cu heapuri (http://infoarena.ro/job_detail/186013)
11  infoarena - concursuri, probleme, evaluator, articole / Informatica / Răspuns: Flux cu numar minim de muchii : Aprilie 26, 2008, 10:27:13
Daca capacitatile sunt 0/1 atunci merge cu BFS din cauza ca ar fi un flux maxim de cost minim intrun graf care are pe toate muchiile cost 1.
Pe cazul 0/1 merge flux maxim de cost minim, cu toate costurile 1, dar drumurile de ameliorare trebuie sa le cauti cu Bellman-Ford, nu cu BFS (faci cost -1 pe muchiile pe care trimiti flux inapoi).
12  infoarena - concursuri, probleme, evaluator, articole / Informatica / Răspuns: Arbore de drumuri : Aprilie 26, 2008, 10:19:56
Cu Dijkstra cum se poate face?
Poti determina cu Dijkstra asa cum a spus Cotizo: odata gasita distanta minima pana la fiecare nod, DAG-ul drumurilor minime va fi format din toate muchiile (u,v) pentru care dist[ u ] + cost(u,v) = dist[ v ].

Citat din mesajul lui: Sima Cotizo
Apoi, din cate am inteles din citatul tau, ai deja un arbore (graf) pe muchiile caruia daca mergi, ajungi in cost minim de la sursa la orice nod
Din cate am inteles eu, e un fel de labirint in care sa treci dintr-o celula in alta ai cost 1, si sa spargi un zid ai cost p. Deci nu poti face o parcurgere in graful original pentru a gasi un drum minim. Intr-adevar, dupa ce ai obtinut DAG-ul drumurilor minime, faci o parcurgere si cauti drumul cu cat mai putine muchii de cost p.
13  infoarena - concursuri, probleme, evaluator, articole / Informatica / Răspuns: Flux cu numar minim de muchii : Aprilie 25, 2008, 23:42:05
In cazul in care capacitatile sunt 0/1, numarul de muchii folosite e intotdeauna acelasi (o unitate de flux satureaza muchia).

Nu orice flux maxim intr-o retea de capacitati 0/1 foloseste acelasi numar de muchii (din nou, conteaza numarul de muchii saturate de pe taietura, in rest poti transporta oricum fluxul). Un exemplu ar fi reteaua V={1,2,3,4}, E={(1,2),(2,3),(3,4),(1,3)}, S=1, T=4. Fluxul maxim este 1 si poate fi trimis pe drumul P1={(1,2),(2,3),(3,4)} sau P2={(1,3),(3,4)}.

Ramane de vazut (de fapt asta era problema mea initiala) daca, in cazul in care fiecare cautare a drumului de ameliorare foloseste un BFS (deci drumul cu numar minim de muchii), atunci se garanteaza minimul global de muchii la incheierea algoritmului...
14  infoarena - concursuri, probleme, evaluator, articole / Informatica / Răspuns: Arbore de drumuri : Aprilie 25, 2008, 23:31:05
Din cate am inteles, Sebi avea nevoie de DAG-ul drumurilor minime, nu numai de arbore.
15  infoarena - concursuri, probleme, evaluator, articole / Informatica / Răspuns: Flux cu numar minim de muchii : Aprilie 25, 2008, 23:16:12
Defapt, desenul arata o contradictie. Textul de deasupra si de sub el trebuie citit.

Desenul mi se pare in concordanta cu ce scrie in articol: arata ca daca inmultesti toate capacitatile cu o valoare T si aduni 1, taietura minima din graful original nu este neaparat taietura minima in graful nou obtinut.

Eu am inteles articolul la fel ca Tiberiu, ar trebui sa inmultesti fiecare muchie cu |E| (de fapt e destul sa inmultesti cu numarul maxim de muchii ce pot aparea intr-o taietura minima a grafului original) si apoi sa aduni 1, ca sa te asiguri de minimalitatea numarului de muchii din taietura.
Citat
Notice what happens if we multiply each edge capacity with a constant T [...] to generalize, we take T = 10, one more than the number of edges in the original network, and one more than the number of edges that could possibly be in a minimum-cut.

@Alina: Eu ma gandeam cu capacitati arbitrare, dar as fi curios si de o analiza pe cazul particular 0/1
16  infoarena - concursuri, probleme, evaluator, articole / Informatica / Răspuns: Flux cu numar minim de muchii : Aprilie 25, 2008, 22:39:01
Taietura minima contine un numar minim de muchii si daca toate muchiile au capacitate 1 Smile Problema e cum circula fluxul de la S pana la muchiile din taietura, si de la muchiile din taietura la T. Dintre toate taieturile minime, ar trebui aleasa aceea care optimizeaza "traficul" in sensul numarului de muchii folosite in afara ei.
17  infoarena - concursuri, probleme, evaluator, articole / Informatica / Flux cu numar minim de muchii : Aprilie 25, 2008, 22:14:32
Fiind data o retea de transport, se pune problema gasirii fluxului maxim de la S la T, iar dintre toate variantele, aceea care foloseste un numar cat mai mic de muchii pentru transport. Ma gandeam de ceva timp daca algoritmul Edmonds-Karp, alegand de fiecare data drumul de ameliorare cu numarul minim de muchii, garanteaza in final o solutie corecta a problemei Confused
18  infoarena - concursuri, probleme, evaluator, articole / Informatica / Răspuns: Arbore de drumuri : Aprilie 25, 2008, 22:00:16
Probabil ca te referi la drumurile minime de sursa unica. Poti adapta algoritmul lui Bellman-Ford: relaxezi de |V| ori toate muchiile si, daca pentru o muchie nu este indeplinita conditia de relaxare, o stergi din graf. Vei ramane cu graful orientat aciclic al tuturor drumurilor minime. Sper sa nu-mi fi scapat ceva..
19  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 002 Jocul Flip : Aprilie 25, 2008, 19:31:28
Da, pot fi schimbate oricate linii si oricate coloane. Incearca o rezolvare care sa ia in vedere toate cazurile.
20  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 185 SETI : Aprilie 25, 2008, 10:32:48
Daca un sir P apare intr-un sir S, atunci P trebuie sa fie prefix al unuia sau mai multor sufixe ale lui S. Astfel, avand sirul sortat al sufixelor lui S, toate pozitiile i din acest sir care indeplinesc conditia ca sufixul ce corespunde acestei pozitii sa aiba ca prefix sirul P sunt deplasamente corecte ale lui P in S. Vei observa ca toate aceste pozitii i sunt consecutive in sirul de sufixe, si poti gasi un "upper bound" si un "lower bound" cu doua cautari binare. Fiecare cautare binara are nevoie de log|S| pasi, iar fiecare pas are nevoie de cel mult |P| comparatii. De aici O( |P|*log|S| ).

Datorita conditiei suplimentare ca niciun pattern nu va fi mai lung de 64 de caractere, poti sorta sufixele in asa fel incat prefixele lor de lungime 64 sa fie in ordinea corecta (asta reduce din timpul constructiei suffix array-ului).
21  infoarena - concursuri, probleme, evaluator, articole / Arhiva educationala / Răspuns: 006 Evaluarea unei expresii : Aprilie 25, 2008, 10:00:52
Foloseam si eu asta la inceput, numai ca tot codul devine destul de stufos. Cu recursivitate, procedura are vreo 15 linii Tongue
22  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 028 Secventa 2 : Aprilie 25, 2008, 09:59:13
Ca sa fie de lungime cel putin k e destul sa fixezi ultimele k-1 elemente si sa te uiti in dinamica in urma cu k pozitii Wink
23  infoarena - concursuri, probleme, evaluator, articole / Arhiva educationala / Răspuns: 006 Evaluarea unei expresii : Aprilie 24, 2008, 20:42:15
Multumesc Smile  Intr-adevar, au aparut cateva idei interesante pe topicul referitor la algoritmul lui Dijkstra, poate cei care are drepturi de editare acolo le vor lua in considerare. S-ar putea face si o pagina despre Bellman-Ford - dar deja discutia devine off-topic.

In privinta numelui, imi pusesem si eu intrebarea, insa n-am insistat prea mult pentru a gasi un raspuns Tongue - scuze pentru confuzie  Embarassed
24  infoarena - concursuri, probleme, evaluator, articole / Arhiva educationala / Răspuns: 006 Evaluarea unei expresii : Aprilie 24, 2008, 19:43:35
Am adaugat si cateva comentarii; sper sa fie usor de inteles - mie mi s-a parut ideea super  Thumb up si cred ca ar merita pusa in pagina cu problema (Sima, editeaza linkul din postul anterior, are de doua ori "http")

Referitor la arbori de expresii, eu ii foloseam cand apareau multe schimbari de variabile in expresii, cand trebuia sa transform in forma pre/postfixata expresia (cu arborele construit, asta devine o simpla parcurgere). Se mai pot face dinamici pe arborii de expresie (cate atribuiri valide a variabilelor exista pentru ca o anumita expresie logica sa fie tot timpul adevarata etc). Sigur ca toate problemele astea se pot rezolva si cu evaluari de genul recursivitate indirecta, insa algoritmii mi se par mult mai intuitivi pe arborii de expresie. Poate e doar o chestiune subiectiva...
Oricum, am comentat si sursa cu arborii - poate va fi utila cuiva Smile
25  infoarena - concursuri, probleme, evaluator, articole / Arhiva educationala / Răspuns: 006 Evaluarea unei expresii : Aprilie 24, 2008, 15:12:24
Pe aceeasi idee se poate renunta si la recursivitatea indirecta, scurtand mai mult codul, si se poate adapta si pentru a construi un arbore de expresie (care, odata construit, va fi foarte util in anumite probleme). Smile
Pagini: [1] 2 3 4
Powered by SMF 1.1.19 | SMF © 2006-2013, Simple Machines