Atenţie! Aceasta este o versiune veche a paginii, scrisă la 2008-02-25 14:37:42.
Revizia anterioară   Revizia următoare  

Arhiva educationala normalnormalnormalnormalnormal

Se propune construirea unei noi arhive de probleme care sa aiba exclusiv scop educational. Spre deosebire de probleme de concurs in care se imbina mai multi algoritmi si rezolvarea de obicei nu este evidenta, problemele din aceasta arhiva vor fi create special pentru cei care vor sa invete cum sa implementeze un algoritm sau o metoda de rezolvare anume. Se va permite accesul la teste, surse si se vor da si link-uri catre documentatie. Mai multe despre acest proiect gasiti aici.

De ce m-as baga?

1. Vei invata cum se creeaza probleme pe infoarena
2. Vei deveni cunoscut
3. Poti invata mai multe despre subiectele care le abordezi
4. Munca ta va ajuta mii de persoane sa invete informatica, si intreaga comunitate iti va fi rescunoscatoare
5. Toate cele de mai sus

Cum pot sa contribui?

1. Contacteaza unul din responsabilii pentru acest proiect pe forumul infoarena:

2. Precizeaza in mesajul tau de intentie ce probleme doresti sa pregatesti. Problemele pe care le-ai ales trebuie sa se regaseasca in tabelul de mai jos sau poti veni cu un algoritm nou care nu e trecut in tabel, iar acesta se va completa corespunzator. Problemele nu trebuie sa fie repartizate nimanui in momentul in care sunt alese.

3. Dupa ce ai obtinut acordul unui responsabil de proiect, vei obtine statutul de helper. In acel moment, vei putea incepe sa editezi problemele. Va trebui sa redactezi enuntul, sa faci teste si eventual un evaluator. Documentatia necesara se gaseste aici.

4. In momentul in care ai finalizat o problema, ea va fi adaugata de catre un administrator in arhiva educationala. Mii de utilizatori infoarena iti vor multumi pentru initiativa ta!

Cine lucreaza

Responsabili de proiect:

Voluntari:

Continutul arhivei

In tabelul de mai jos se afla cei mai importanti algoritmi care trebuie sa se gaseasca sub forma de probleme in arhiva educationala. Pentru fiecare problema este trecut si un responsabil. Responsabilul pe problema va fi cel care s-a oferit prin voluntariat sa o introduca in arhiva. El va fi cel care va scrie enuntul, va crea testele si eventual un evaluator.

Tabelul este in proces de completare!

Nu va apucati de lucru pana nu sunteti informati despre modul in care se baga problemele!

Denumire problemaCategorieResponsabilStare
Algoritmul lui EuclidMatematicafilipbFilip Cristian Buruiana filipbsmall
Algoritmul lui Euclid extinsMatematica-small
Cel mai lung subsir comunProgramare dinamicafilipbFilip Cristian Buruiana filipbsmall
Cel mai lung subsir crescatorProgramare dinamicaFlorianFlorian Marcu Floriansmall
KnapsackProgramare dinamicagabitzish1Gabriel Bitis gabitzish1small
Cautare binara?FlorianFlorian Marcu Floriansmall
Parcurgere BFSGrafuriFlorianFlorian Marcu Floriansmall
Parcurgere DFS - componente conexeGrafurigabitzish1Gabriel Bitis gabitzish1small
Componente biconexeGrafuri-small
Componente tare-conexeGrafuri-small
Sortare topologicaGrafuri-small
Lant hamiltonianGrafuri-small
Ciclu eulerianGrafuri-small
Algoritmul lui PrimGrafuri-small
Algoritmul lui KruskalGrafuri-small
Algoritmul lui DjikstraGrafuri-small
Algoritmul Floyd-WarshallGrafuri-small
Algoritmul Bellman-FordGrafuri-small
Algoritmul Roy-FloydGrafurigabitzish1Gabriel Bitis gabitzish1small
Flux maximGrafuri-small
Flux maxim de cost minimGrafuri-small
Cuplaj maximGrafuri-small
Cuplaj maxim de cost minimGrafuri-small
Lowest Common AncestorGrafuri-small
Potrivirea sirurilorSiruri de caractere-small
Arbori de sufixeSiruri de caractere-small
TrieSiruri de caractere-small
HeapuriStructuri de date-small
HashuriStructuri de date-small
Arbori de intervaleStructuri de date-small
Arbori de indexati binarStructuri de date-small
Range Minimum QueryStructuri de date-small
Double ended queue (deque)Structuri de date-small
Structuri de multimi disjuncteStructuri de date-small
Punct in poligonGeometrie-small
Infasuratoare convexaGeometrie-small
Diagrame VoronoiGeometrie-small

Mentionam faptul ca anumiti algoritmi pot fi implementati in complexitati diferite. De exemplu, pentru algoritmul de drumuri minime al lui Djikstra exista atat o solutie de complexitate O(N2), cat si o solutie O(M log2 N). In acest caz, propunem sa nu se faca doua probleme diferite, ci sa se diferentieze punctajul in functie de rezolvare. Diferentierea pentru diferite abordari (complexitati) va fi precizata clar in enunt la rubrica de restrictii. De exemplu: "Un algoritm de complexitate O(N2) obtine 50 de puncte", "Algoritmul Ford-Fulkerson obtine 30 de puncte. Pentru punctaj maxim este necesara implementarea algoritmului lui Dinic.".

Sugestii

Cosmin: ar fi misto sa facem niste useri, admin sau comisie 1 2 3, ca sa poata fi cautate in arhiva usor solutiile oficiale, sau putem pune link la ele din textul problemei.
Cosmin: de asemenea nu cred ca trebuie sa ne chinuim la teste foarte tare, e important ca pe teste sa iti dai seama daca algoritmul e corect si din timpii de executie te poti prinde cat de eficient e.
astronomy: cred ca acum ar trebui sa-si spuna mai multi parerea si sa se ajunga la un format clar in ceea ce priveste problemele. de exemplu, eu ma gandesc sa existe o pagina mare pentru tehnica respectiva, iar aceasta pagina sa contina la inceput o mica introducere, apoi linkuri catre articole sau alte materiale de documentatie, apoi o lista cu problemele care fac parte din arhiva educationala (eventual la fiecare problema si idei de rezolvare daca este cazul si linkuri spre sursele "comisiei") iar apoi o lista cu alte probleme care se pot rezolva folosind cele invatate (de preferat problemele sa fie in ordine crescatoare a dificultatii). voi ce credeti?
Cosmin: eu nu cred ca e neaparat sa existe pagina cu mai multe linkuri sau daca exista la inceput nu trebuie sa fie foarte detaliata. De exemplu merge o pagina cu 2 linkuri la Dijkstra: Dijkstra simplu si Dijkstra cu heapuri spre doua surse si inca unul spre textul problemei, sau chiar din textul problemei sa fie linkurile. Si apoi pe masura ce lumea se uita si citeste poate adauga cine vrea material mai mult.

Ideea e ca vrei sa ai ceva folositor si functional cat mai repede, apoi articole cu explicatii mai detaliate pot aparea de la sine.
Alta chestie ar fi ca sursele considerate oficiale sa urmeze toate acelasi coding style, si sa aiba comentarii, iar cativa dintre coordonatori sa se asigure ca sursele sunt deajuns de frumos scrise si inteligibile. Asta ar ridica destul de mult calitatea exemplelor si le-ar si uniformiza.