|
Titlul: 047 Algoritmul Bellman-Ford Scris de: Marius Stroe din Ianuarie 11, 2010, 19:43:44 Aici puteţi discuta despre problema Algoritmul Bellman-Ford (http://infoarena.ro/problema/bellmanford).
Titlul: Răspuns: 047 Algoritmul Bellman-Ford Scris de: speedzeal din Februarie 07, 2010, 16:17:43 De ce nu comentati sursele alea de 100 de puncte? Puneti tot felul de functii complicate ca sa nu se inteleaga algoritmul in sine.Probabil ca e mai eficient dar e mai bine sa sacrificam pentru simplitate, pentru ca dupa ce intelegi algoritmul si stii si functiile alea "smechere" o sa fie foarte usor sa il optimizezi.
Titlul: Răspuns: 047 Algoritmul Bellman-Ford Scris de: Cezar Mocan din Februarie 07, 2010, 16:31:44 Care sunt functiile astea complicate? :)
Titlul: Răspuns: 047 Algoritmul Bellman-Ford Scris de: Andrei Grigorean din Februarie 07, 2010, 19:16:10 @xtreme: Eu cred ca poti sa te exprimi si mai frumos, tu ce zici? Ia incearca.
@cezer: Probabil se refera la STL. Si eu sunt de parere ca sursele oficiale contin prea mult STL in ele. Ar trebui sa stabilim un standard pentru sursele oficiale din arhiva educationala. Poate vom discuta asta la urmatoarea sedinta. Titlul: Răspuns: 047 Algoritmul Bellman-Ford Scris de: Gabriel Bitis din Februarie 07, 2010, 22:06:32 Am propus si eu chestia asta unor membri din echipa. Cred ca sursele care se dau ca model ar trebui sa fie cat mai aranjate si comentate.
Scopul lor (in viziunea mea) e sa clarifice algoritmul, sa ajute la intelegerea lui, nu sa scoata in evidenta dibacia celui ce'a scris'o. Cred ca niste surse aerisite ca aspect si clarificate prin comentarii ar ajuta mai multa lume. Titlul: Răspuns: 047 Algoritmul Bellman-Ford Scris de: speedzeal din Februarie 10, 2010, 18:10:25 Eu zic ca modul de redactare a sursei http://infoarena.ro/job_detail/381834?action=view-source e groaznic.Functiile assert ajuta doar la debugging, dupa ce ne-am asigurat ca programu trece testele aceste functii nu mai au sens.Pentru un tip care vrea sa-nvetze algoritmul, folosirea vectorului adj_t este inutila(probabil ca l-a ajutat pe el la rezolvare).Cand ia toate muchiile care pornesc dintr-un nod pe care tocmai l-a scos din coada verifica daka acest nod i-a fost calculata distanta(dist[nodcur]<INF), aceeasta conditie e intotdeauna adevarata pentru ca nu bagi in coada numai nodurile a caror distanta a fost calculata.Codul pare a fi scris in graba ca si multe alte surse exemplare din arhiva educationala.
Titlul: Răspuns: 047 Algoritmul Bellman-Ford Scris de: alexandru din Februarie 10, 2010, 18:31:26 assert este folosit pentru a testa testele, daca se incadreaza in limitele mentionate mai sus.
Titlul: Răspuns: 047 Algoritmul Bellman-Ford Scris de: speedzeal din Februarie 10, 2010, 18:47:36 @alexandru :De unde esti? :shock:.Precis daca nu spuneai tu nu stiam, nu se subintelege din posturile mele anterioare ca stiam asta? [-X @pentru restu Autorul a fost scump la comentarii , poate sa ma lamureasca cineva de ce e ciclu infinit daca se introduce de N+1 ori acelasi nod in coada? Titlul: Răspuns: 047 Algoritmul Bellman-Ford Scris de: Paul-Dan Baltescu din Februarie 10, 2010, 19:04:35 Ce zici sa adopti un ton mai politicos? Contrar asteptarii tale, echipa infoarena nu are nici o indatorire in a te ajuta, ce facem noi este munca voluntara. Daca nu iti place cum ne facem treaba si nu stii sa te integrezi frumos in comunitate, poti sa inveti programare in alta parte.
Noi iti oferim un model la aceste probleme, dar toate problemele au sursa libera. Daca vreun aspect nu ti-e clar, poti sa studiezi si ce au facut altii. Titlul: Răspuns: 047 Algoritmul Bellman-Ford Scris de: Andrei Misarca din Februarie 10, 2010, 21:54:43 Eu zic ca modul de redactare a sursei [...] e groaznic. Să nu ne obrăznicim. Dacă o sursă este redactată într-un stil diferit de al tău nu înseamnă că este groaznică. @pentru restu Autorul a fost scump la comentarii , poate sa ma lamureasca cineva de ce e ciclu infinit daca se introduce de N+1 ori acelasi nod in coada? Dacă ai fi citit explicațiile de pe wiki (din articolul către care se face legătura), ai fi aflat de ce e așa. Consider ca nu trebuie făcută muncă de transcriere dacă există niște articole deja scrise. Titlul: Răspuns: 047 Algoritmul Bellman-Ford Scris de: Pripoae Teodor Anton din Februarie 10, 2010, 22:26:33 Citat Eu zic ca modul de redactare a sursei [...] e groaznic. Sursa oficiala e codata dupa standard, ce codezi tu nu este dupa standard :). Eu as zice mai degraba sa inveti tu sa indentezi, decat sa critici. Eu sincer nu prea iti inteleg sursele. Titlul: Răspuns: 047 Algoritmul Bellman-Ford Scris de: Marius Stroe din Februarie 10, 2010, 23:32:04 Eu zic ca modul de redactare a sursei http://infoarena.ro/job_detail/381834?action=view-source e groaznic.Functiile assert ajuta doar la debugging, dupa ce ne-am asigurat ca programu trece testele aceste functii nu mai au sens.Pentru un tip care vrea sa-nvetze algoritmul, folosirea vectorului adj_t este inutila... Nu te supăra, dar eu când am învăţat aceşti algoritmi de bază nu am avut niciun model de sursă şi tare aş fi vrut să am, de orice fel ar fi fost ea. @wefgef Nu ştiu dacă mult STL strică. Nu e deloc greu să cauţi în documentaţie, iar dacă te obişnuieşti cu el atunci nu ai decât de câştigat. LE: Acum ştiu de ce îmi tot scădea Karma. :) Titlul: Răspuns: 047 Algoritmul Bellman-Ford Scris de: Dragos din Februarie 23, 2010, 09:16:47 Salut!
Cu execeptia primului si a ultimului nod din ciclu restul trebuie sa nu se repete(sa fie distincte)? :roll: Titlul: Răspuns: 047 Algoritmul Bellman-Ford Scris de: Marius Stroe din Februarie 23, 2010, 16:41:10 Salut! Cu execeptia primului si a ultimului nod din ciclu restul trebuie sa nu se repete(sa fie distincte)? :roll: Da Titlul: Răspuns: 047 Algoritmul Bellman-Ford Scris de: Philip din Martie 02, 2010, 00:32:39 Testele din atasamente sunt aceleasi cu cele din raportul evaluatorului (http://infoarena.ro/job_detail/407086 (http://infoarena.ro/job_detail/407086))?
Daca verific manual, primesc aceleasi rezultate ca in atasamente, dar evaluatorul imi da incorect la majoritatea testelor. ??? Titlul: Răspuns: 047 Algoritmul Bellman-Ford Scris de: Titei Paul Adrian din Aprilie 01, 2010, 22:32:43 Cine nu înţelege sursa oficială puteţi să vă uitaţi la sursa asta http://infoarena.ro/job_detail/432233?action=view-source .
Am încercat să explic pe înţelesul tuturor. Titlul: Răspuns: 047 Algoritmul Bellman-Ford Scris de: Petru Trimbitas din Iunie 07, 2010, 20:20:19 A incercat cineva sa implementeze varianta din introducere in algoritmi? Eu am incercat si nu stiu de ce nu imi da bine pe nici un exemplu. :sad: ](*,)
Cod: #include <cstdio> Titlul: Răspuns: 047 Algoritmul Bellman-Ford Scris de: George Marcus din Ianuarie 04, 2011, 13:00:05 Nu stiu ce ai facut tu acolo cu lista vecinilor, dar e ceva mult mai complicat decat e nevoie... sau poate nu inteleg eu :D Am vazut ca faci coada alocata dinamic, mie mi-a mers si static. De asemenea... long?
Titlul: Răspuns: 047 Algoritmul Bellman-Ford Scris de: Pripoae Teodor Anton din Ianuarie 05, 2011, 15:42:20 Problema e open-tests. Uite-te pe teste.
Titlul: Răspuns: 047 Algoritmul Bellman-Ford Scris de: Mardare Rares din Februarie 22, 2011, 21:59:58 Am implementat bellman ford cu coada cu liste si a aparut o problema...
Structura e Cod: struct lista si nmax din ce stiu eu inseamna numarul de noduri... si 1 ≤ N ≤ 50 000 din enunt. cu 50 005 iau killed by signal, cu m ( 250 005 ) pus iau la fel killed by signal, bea cu 500 005 iau 100 puncte. E gresit in enunt sau problema este de la mine? Tot ce am modificat a fost doar nmaxul respectiv ca sa obtin 100. Titlul: Răspuns: 047 Algoritmul Bellman-Ford Scris de: George Marcus din Februarie 22, 2011, 22:06:17 Vezi ca si coada ti-e declarata nmax si, cum un nod poate intra de mai multe ori, exista sanse sa depaseasca acea valoare.
Titlul: Răspuns: 047 Algoritmul Bellman-Ford Scris de: FMI-Balcau Ionut din Martie 29, 2011, 12:29:59 Dumnezeule...am stat o ora chinuinduma sa vad unde am gresit ca sa-mi dau seama ca scrisasem "Ciclu Negativ!" cu N mare :|
Imi vine sa sparg ceva! Titlul: Răspuns: 047 Algoritmul Bellman-Ford Scris de: Nume Fals din Februarie 29, 2012, 11:20:02 Bellman-Ford cu coada cu prioritate chiar are complexitatea mai mare (O(N*M*log2N)) decat cu coada simpla? (O(N*M)) cf. textului
Titlul: Răspuns: 047 Algoritmul Bellman-Ford Scris de: Laurentiu Ion din Februarie 29, 2012, 15:29:55 Bellman-Ford cu coada cu prioritate chiar are complexitatea mai mare (O(N*M*log2N)) decat cu coada simpla? (O(N*M)) cf. textului Da, coada de prioritate este un heap, si operatiile au complexitatea O(lg N) pe cand coada simpla este un vector si ai complexitate O(1). Vezi Algoritmul lui Dijkstra din Arhiva Educationala. Titlul: Răspuns: 047 Algoritmul Bellman-Ford Scris de: Dan H Alexandru din Iulie 12, 2012, 18:25:47 Am o intrebare , anume de ce cu coada ( queue ) iau 100 si cu un vector care simuleaza o coada ( vector din STL ) iau doar 35 ?
Titlul: Răspuns: 047 Algoritmul Bellman-Ford Scris de: Popa Mihai din Iulie 12, 2012, 18:45:42 Pai vezi ca in cazul vectorului din STL nu simulezi coada, scoti de la sfarsit iar tu ar trebui sa scoti de la inceput.
Titlul: Răspuns: 047 Algoritmul Bellman-Ford Scris de: Dan H Alexandru din Iulie 12, 2012, 18:46:41 Acum mi-am dat seama si vroiam sa sterg postarea. :-' Multumesc oricum.
Titlul: Răspuns: 047 Algoritmul Bellman-Ford Scris de: Mihai Calancea din Iulie 12, 2012, 20:01:12 Vectorul ala nu simuleaza o coada. Principul cozii este ca primul venit e primul plecat. Iar tu ai Q.pop_back() respectiv Q.push_back() in sursa ta. La tine urmatoarea chestie pe care o extragi din Q e ultima pe care ai pus-o, ceea ce nu e ok deloc. Asta e o stiva. Coada din STL face pop() din fata, nu din spate :)
Acum ca sa vezi de ce merge prost Bellman-ul cu o stivă, e ceva mai complicat. Intuitiv, expandarea ta prin graf se face ca un df, adica ajungi foarte departe din prima cu niste drumuri proaste, te intorci si le imbunatatesti mai apoi, desi puteai face asta de la inceput daca te expandai uniform. O da intr-un fel de back. Sper ca ai inteles. Ai grija sa 'ai proprietatea termenilor pe care ii folosesti', ca sa citez dintr-un ganditor autohton :roll:. Nu scrie chestii pe care nu le intelegi pe deplin si daca ai intrebari, intreaba intotdeauna :) Titlul: Răspuns: 047 Algoritmul Bellman-Ford Scris de: Dan H Alexandru din August 03, 2012, 11:08:38 Multumesc. Problema a fost doar una de neatentie. :? Scuze pentru deranj.
Titlul: Răspuns: 047 Algoritmul Bellman-Ford Scris de: Andrei din Ianuarie 28, 2015, 14:12:57 Eu nu inteleg de ce dijkstra nu e bun pentru grafuri cu muchii negative. Imi poate spune cineva? :-k
Titlul: Răspuns: 047 Algoritmul Bellman-Ford Scris de: Dragos Ristache din Ianuarie 28, 2015, 19:53:39 Eu nu inteleg de ce dijkstra nu e bun pentru grafuri cu muchii negative. Imi poate spune cineva? :-k Uita-te la acest graf (http://i.stack.imgur.com/rmowk.png). Care e distanta minima intre A -> C ? Cat gaseste Dijkstra ? Titlul: Răspuns: 047 Algoritmul Bellman-Ford Scris de: Sunt emo din Mai 18, 2015, 15:05:48 Poate nu am inteles bine cerinta, dar solutia oficiala pica urmatorul test, desi graful contine in mod clar un ciclu negativ:
4 4 2 1 1 2 3 1 3 4 1 4 2 -3 Titlul: Răspuns: 047 Algoritmul Bellman-Ford Scris de: George Marcus din Mai 19, 2015, 00:20:07 Solutiile oficiale presupun ca poti ajunge din nodul 1 in orice alt nod. Poate la asta se refera "graf orientat conex", nu imi dau seama.
Titlul: Răspuns: 047 Algoritmul Bellman-Ford Scris de: Sunt emo din Mai 19, 2015, 10:03:26 Cred ca ai dreptate, desi notiunea de "graf conex" se refera la grafuri neorientate. Pentru grafuri orientate am vazut ca se folosesc notiunile de "tare conex" (testele la problema la asta) si "slab conex" (exemplul pe care l-am dat eu).
Titlul: Răspuns: 047 Algoritmul Bellman-Ford Scris de: Andrei Grigoras din Februarie 05, 2016, 17:01:03 Stiti cumva ce este la testul 6 ? Tot incerc sa inteleg de ce iau doar 90 pct
Titlul: Răspuns: 047 Algoritmul Bellman-Ford Scris de: Vlad Rochian din Februarie 13, 2016, 13:16:28 Stiti cumva ce este la testul 6 ? Tot incerc sa inteleg de ce iau doar 90 pct Testele sunt publice |