|
Titlul: 257 Catun Scris de: Filip Cristian Buruiana din Iulie 08, 2006, 09:20:00 Aici puteţi discuta despre problema Catun (http://infoarena.ro/problema/catun).
Titlul: Raspuns: 257 Catun Scris de: Toma Radu din Iulie 08, 2006, 14:46:11 Care este complexitatea la aceasta problema? am un O(n^2), dijkstra pe liste....
Titlul: Raspuns: 257 Catun Scris de: Filip Cristian Buruiana din Iulie 08, 2006, 14:56:40 Djikstra merge si O(M log N)...
Titlul: Raspuns: 257 Catun Scris de: Paul-Dan Baltescu din Iulie 09, 2006, 08:39:17 Exista drumuri de lungime 0?
Titlul: Raspuns: 257 Catun Scris de: Filip Cristian Buruiana din Iulie 09, 2006, 08:40:03 Toate costurile pe muchii sunt > 0.
Titlul: Raspuns: 257 Catun Scris de: Bondane Cosmin din Iulie 31, 2006, 20:01:55 of chiar nu inteleg dc scot numai 40 de pcte ... restu WA :oops:
toate testele care le dau imi merg ( ) Titlul: Raspuns: 257 Catun Scris de: Savin Tiberiu din August 01, 2006, 07:27:06 pai zi cum faci, eu iau 50 pct si nici eu nu inteleg ce e gresit.
Titlul: Raspuns: 257 Catun Scris de: Bondane Cosmin din August 01, 2006, 10:46:13 prima data stabilesc pt vecinii directi a celor k cetati : distanta si totodata sol[] ( care retine cetate ) si ii pun in heap
dupa care fac dijkstra si verific daca gasesc d[x->vf] > d + x->cost || actualizez d[] si sol[] sau daca is egale verific dak sol ii mai mic decat sol[x->vf] si actualizez sol[] km atat ... Titlul: Re: 257 Catun Scris de: Adrian Vladu din August 01, 2006, 12:26:23 In teste exista muchii cu lungimi mai mari decat 1024. Aveti grija daca folositi restrictiile asupra lungimilor muchiilor in algoritmul de rezolvare. Asta pana cand vom reface testele :-'
Titlul: Raspuns: 257 Catun Scris de: Bondane Cosmin din August 01, 2006, 12:49:13 nu cre k ii de la asta pt k am obtinut 60 de pcte cu un program n*m care nu folosea long long ...
Titlul: Raspuns: 257 Catun Scris de: Savin Tiberiu din August 01, 2006, 13:01:06 pai pune long long poate iei 100
Titlul: Raspuns: 257 Catun Scris de: Bondane Cosmin din August 01, 2006, 13:07:22 nu mere :angry: sa fie de la implementare? sau nu ii buna ideea?
Titlul: Raspuns: 257 Catun Scris de: Marius Stroe din August 02, 2006, 12:12:13 nu mere :angry: sa fie de la implementare? sau nu ii buna ideea? E buna ideea. Eu nu am folosit deloc long long. Titlul: Raspuns: 257 Catun Scris de: Paul-Dan Baltescu din August 03, 2006, 10:05:49 Eu iau 80 de puncte cu si fara long long. Pe testele 3 si 8 iau WA. Any ideas why?
Titlul: Raspuns: 257 Catun Scris de: Bondane Cosmin din August 09, 2006, 22:40:33 \:D/ 100 dupa lungi chinuri ... greseam la refacerea heapului :oops:
Titlul: Raspuns: 257 Catun Scris de: Tabara Mihai din Octombrie 06, 2006, 09:18:28 NU iau numai 10 puncte. :oops: :oops: :oops:
Am facut Dijkstra pe liste.Cu long long iau 0, iar cu long 10. NU ma astept sa iau 100 cu Dijkstra pe liste, insa nici chiar 10 :'(. Imi iese testul 7 corect.In rest TLE pe 3 teste si WA pe 6 teste. Help pls. ](*,) [Later Edit] => Mie mi s-ar parea normal sa imi iasa cu Dijkstra pe liste testele pe care am WA...nu? Titlul: Raspuns: 257 Catun Scris de: Filip Cristian Buruiana din Octombrie 06, 2006, 11:10:31 Ai avut grija pentru fiecare nod sa retii raspunsul cel mai mic?
Titlul: Raspuns: 257 Catun Scris de: Tabara Mihai din Octombrie 06, 2006, 11:14:35 Ai avut grija pentru fiecare nod sa retii raspunsul cel mai mic? Da... :ok: Cod: sol[p->vf] = Inf( sol[p->vf], sol[poz] ); unde Inf(long int, long int) e functia care stabileste numarul de ordine minim. ](*,) Titlul: Raspuns: 257 Catun Scris de: Savin Tiberiu din Octombrie 06, 2006, 14:04:41 nush dak am inteles eu bine codu tau, dar am impresia ca verifici faci dinre un costul initial si costul vecinilor. la costul vecinilor ar trebui sa aduni si costul muchiei de la vecin la nod.
PS: eu am luat 100 cu djikstra pe liste Titlul: Raspuns: 257 Catun Scris de: u-92 din Octombrie 06, 2006, 14:31:58 100 cu O(N^2) ? ???
Titlul: Raspuns: 257 Catun Scris de: Savin Tiberiu din Octombrie 06, 2006, 14:56:03 dap, bine ca oricum am implementat apoi n log n insa luasem 100 si cu n^2
Titlul: Raspuns: 257 Catun Scris de: Filip Cristian Buruiana din Octombrie 06, 2006, 15:01:15 \:D/ Eu nu am putut sa iau mai mult de 70 de puncte cu un algoritm patratic... :thumbup:
Titlul: Raspuns: 257 Catun Scris de: Tabara Mihai din Octombrie 06, 2006, 19:28:15 Uite cam asa arata Dijkstra-ul meu
Cod: .... unde f[] tine sirul fortaretelor, Inf e functia care compara numarul de ordine a doua feude, iar sol e vectorul de iesire. Titlul: Raspuns: 257 Catun Scris de: Bondane Cosmin din Octombrie 06, 2006, 20:22:22 ce ii Inf ?? scrie ce face Inf :P
Titlul: Raspuns: 257 Catun Scris de: u-92 din Octombrie 07, 2006, 11:49:30 e gresit ce faci tu acolo la initializare.. for-ul ala de la 1 la k.. nu calculezi minimul pentru nodurile vecine fortaretelor
Titlul: Raspuns: 257 Catun Scris de: Tabara Mihai din Octombrie 07, 2006, 16:19:03 e gresit ce faci tu acolo la initializare.. for-ul ala de la 1 la k.. nu calculezi minimul pentru nodurile vecine fortaretelor :aha: :aha: Ai avut dreptate. =D> Am schimbat acolo si merge de 70 acuma. Cred ca o sa incerc pe heap-uri pentru 100 :-k ( desi nu prea le stapanesc :-') :weightlift: Titlul: Răspuns: 257 Catun Scris de: Jurba Andrei din Mai 18, 2008, 12:13:40 Cred ca este o problema cu testul 1, am rezolvat prob parsand citirea si tot luam 90 pt luand WA pe testul 1. Acum am modificat citirea citind ca tot omul numar cu numar si vad ca iau 100. Cum parsarea nu e gresita.... banuiesc ca este ceva in neregula cu testul.
Titlul: Răspuns: 257 Catun Scris de: Adrian Diaconu din Mai 18, 2008, 17:00:57 Ai dreptate. Era un '\n' pus aiurea prin fisier. Am modificat testul si am dat o re-evalare.
Titlul: Răspuns: 257 Catun Scris de: Andrei Misarca din Octombrie 03, 2008, 20:35:29 Am si eu o intrebare... cum se poate scoate O(M log N) ca m-am tot chinuit si nu reusesc, in conditiile in care dijkstra de la un nod la toate celelalte se face in O(M log N), iar aici imi trebuie de la toate nodurile la toate cetatiile :?
Titlul: Răspuns: 257 Catun Scris de: Mircea Dima din Octombrie 03, 2008, 20:46:13 Pai nu aplici dijkstra decat o singura data!
Bagi toate fortaretele in coada / heap si apoi ii dai bataie cu bellman-ford-ul / dijkstra pe heap :) Titlul: Răspuns: 257 Catun Scris de: Alexandru Pana din Octombrie 04, 2008, 12:45:31 In cazul asta la dijkstra poti folosi vectorul de tati pentru a pastra fortareata de care apartine fiecare catun, adica radacina din care pleaca drumul. Nu conteaza drumul in sine.
prima data stabilesc pt vecinii directi a celor k cetati : distanta si totodata sol[] ( care retine cetate ) si ii pun in heap dupa care fac dijkstra si verific daca gasesc d[x->vf] > d + x->cost || actualizez d[] si sol[] sau daca is egale verific dak sol ii mai mic decat sol[x->vf] si actualizez sol[] km atat ... poate te ajuta si asta.. sol[] e de fapt vectorul de tati. Titlul: Răspuns: 257 Catun Scris de: Andrei Misarca din Octombrie 05, 2008, 09:56:29 in prima faza nu prea intelesesem ce vroia sa zica in postu ala (pan' la urma am inteles), da' mi sa parut mult mai simplu bellman ford cu coada circulara, adica mi-a intrat fara probleme in timp la toate testele, chiar si fara optimizarea cu sirul de vizitate + ca dijkstra e mai lung (ca linii de cod) decat belman ford.
multzam la toti pt hinturi :) Titlul: Răspuns: 257 Catun Scris de: Carabet Cosmin Andrei din Octombrie 03, 2009, 23:17:01 Testele la problema asta sunt prost date. Am scos 100 pct : http://infoarena.ro/job_detail/353044 cu o sursa in care aveam complexitate O(n*m*k) cu cate un bellman ford pt fiecare oras de tip fortareata. Ar fi bine daca ar putea cineva sa le mai schimbe.:peacefingers:
Titlul: Răspuns: 257 Catun Scris de: Paul-Dan Baltescu din Octombrie 04, 2009, 00:37:17 De ce nu te implici chiar tu ca sa le schimbi? Nu e treaba grea si multi utilizatori iti vor multumi pentru efortul depus. In plus, esti cu un pas mai aproape de echipa infoarena.
Daca esti interesat, contacteaza-ma printr-un mesaj privat. Titlul: Răspuns: 257 Catun Scris de: Petru Trimbitas din Iunie 08, 2010, 14:17:07 poate cineva sa-mi dea un test mai mare?
Titlul: Răspuns: 257 Catun Scris de: Petru Trimbitas din Iunie 24, 2010, 11:29:33 La z nu sunt restrictii?
Titlul: Răspuns: 257 Catun Scris de: George Marcus din Noiembrie 08, 2010, 19:05:08 Greseala pe care o faceam eu (cand luam 40) era ca nu updatam heap-ul in caz ca gaseam un nod deja introdus in heap care are distanta noua mai mica decat inainte. Poate scutesc pe cineva de niste ore pierdute si nervi :D
Titlul: Răspuns: 257 Catun Scris de: A Andrei din Noiembrie 10, 2010, 23:43:11 Iau doar 20 de puncte pe problema asta. Ce gresesc?
1. Imi adaug toate nodurile ce sunt fortarete intr-o coada. 2. Aplic Bellman-Ford. 3. Imi construiesc rezultatul in O(n*p), unde p e numarul de fortarete. Stiu ca nu pasul trei strica tot dar nu am reusit sa ma prind cum fac toata treaba in real time. :) Titlul: Răspuns: 257 Catun Scris de: Adrian Budau din Noiembrie 11, 2010, 02:45:14 Nu inteleg exact la ce te referi cand spui real-time, dar daca vrei o solutie in O(n) dupa BF, pur si simplu la BF mai tii o valoare pentru fiecare nod, anume foratareata de care apartine, la care evident ca poti da update in O(1) cand treci prin acel element in BF. In rest e buna ideea.
Sper sa te ajute :D Titlul: Răspuns: 257 Catun Scris de: Paul-Dan Baltescu din Noiembrie 11, 2010, 08:34:18 Adi: Ai grija ca lumea in general intelege parcurgere in latime prin BF, nu Bellman Ford. :thumbup:
Titlul: Răspuns: 257 Catun Scris de: Adrian Budau din Noiembrie 11, 2010, 15:02:22 O sa tin minte. Mie sincer imi intra in cap Bellman-ford la BF si Breadth-first-search la BFS. Ma voi adapta :)
Titlul: Răspuns: 257 Catun Scris de: Banu Lavinia din Martie 11, 2011, 20:11:53 Aveti vreun exemplu de test? Nu inteleg de ce imi da raspuns gresit, pentru ca pana acum a trecut toate testele mele. :? Multumesc anticipat.
Titlul: Răspuns: 257 Catun Scris de: Ababab din Februarie 16, 2012, 23:12:58 Cred că e timpul să nu mai umplu evaluatorul de surse inutile și să cer puțin ajutor.
Mojoritatea surselor pe care le-am trimis dau bine pe testele mele, am folosit mai multe idei. Prima dată am încercat să fac dijkstra pentru fiecare fort și am luat 50 (folosind priority_queue), după am făcut dijkstra o singură dată, plecând cu toate forturile în priority_queue și am luat 40, după am încercat să fac dijkstra cu heap începând de la un nod în plus care face legătura între fortărețe, muchiile incidente cu el având costul 0, și am luat 20. Unde tot greșesc în gândire? Titlul: Răspuns: 257 Catun Scris de: Petru Trimbitas din Februarie 17, 2012, 00:02:17 Nu mai tin minte exact problema dar cred ca trebuie sa faci bellman ford. Eu am pornit cu toate fortaretele in coada. Sper sa te ajute :)
Titlul: Răspuns: 257 Catun Scris de: George Marcus din Februarie 17, 2012, 00:09:49 Merge si cu Dijkstra. Initializezi toate distantele cu infinit, apoi introduci fortaretele in heap si le setezi distanta la 0. Ai grija la implementare si ar trebui sa mearga.
Titlul: Răspuns: 257 Catun Scris de: Ababab din Februarie 17, 2012, 01:47:58 Știu că vă sâcâi, dar e vreun șmen mai aparte aici și nu mă prind eu? Înafară că fac dijkstra/bellman-ford și bag mai multe chestii în coadă de la început.
Eu updatez harta (vectorul) de fortărețe corespunzătoare de fiecare dată când găsesc un drum mai scurt, adică când lungimea drumului până la nodul curent + distanața dintre nodul curent și i < lungimea drumului până la i, atunci salvez și fort(i) = fort(nod curent). Iar fortărețele au inițial care fortărețe corespunzătoare pe ele însiși, ca și cum aș salva nodul precedent ca să reconstruiesc drumul, numai că salvez aceleași noduri mereu (fortărețele). Mulțumesc anticipat și îmi pare rău dacă am folosit prost limba română, e cam târziu și îmi pică ochii de somn. Titlul: Răspuns: 257 Catun Scris de: Paul-Dan Baltescu din Februarie 17, 2012, 08:45:45 E bine.
Titlul: Răspuns: 257 Catun Scris de: FII Florea Toma Eduard din Februarie 24, 2012, 01:04:20 Cred ca exemplul este gresit.In cerinta spune asa:
Citat Daca un catun este la distanta egala de doua fortarete, se va considera ca apartine fortaretei cu numarul de identificare minim. .Iar in exemplu avem asa: Citat 1 3 6 1 5 3 ... 2 3 9 Atunci pentru a treia fortareata in exemplul dat mai sus nu ar trebuii sa arate 2? Dupa capul meu, pana la catunul cu numarul 3 distanta de la castelele 2 si 5 sunt egale( 9 unitati de timp ). L.E: nevermind,de fapt distanta de la castelul 5 este egala cu 7 unitati de timp,greseala mea :-' Titlul: Răspuns: 257 Catun Scris de: Mihai Visuian din Iunie 22, 2012, 14:43:15 iau WA pe 5 teste si nu stiu unde gresesc. De fiecare data cand intalneam un castel, faceam un Dijkstra pornind de la castel, iar drumurile de la fortareata la sate le puneam intr-un vector pe care il actualizam tot timpul dupa ce intalneam castele.
Am facut si cazul cu indicele minim. Titlul: Răspuns: 257 Catun Scris de: George Marcus din Iunie 22, 2012, 16:41:36 Probabil nu gaseai greseala fiindca programul tau functioneaza doar cand fortaretile sunt date in ordine crescatoare. Ai doua solutii:
1) Ori faci cautarea in ordinea crescatoare a fortaretilor (http://infoarena.ro/job_detail/760691?action=view-source) 2) Ori corectezi depistarea indicelui minim (era inutila in cazul in care sunt in ordine crescatoare - intotdeauna gasesti indicele mai mic inaintea indicelui mai mare - si gresita in celalalt caz) (http://infoarena.ro/job_detail/760698?action=view-source) Alte remarci: Acel algoritm nu e Dijkstra, chiar daca tu l-ai numit asa. Faceai lucruri inutile cum ar fi: "if(c[curent]!= INF)" - conditia e tot timpul adevarata; la tine vectorul minimum[] si c[] semnificau acelasi lucru. Titlul: Răspuns: 257 Catun Scris de: Mihai Visuian din Iunie 22, 2012, 22:12:17 Da, am sortat fortaretele si am luat 100. Era gresita verificarea minimului cred. Mersi pt sfat :D
Titlul: Răspuns: 257 Catun Scris de: Alexandru Valeanu din Februarie 02, 2013, 00:13:08 Imi poate spune si mie cineva ce gresesc e iau 10p?
Titlul: Răspuns: 257 Catun Scris de: Radu-Andrei Szasz din Februarie 02, 2013, 14:12:17 Din cate mi se pare, gresesti in functia init.
Tu acolo iei vecinii fiecarei fortarete si le bagi distanta fata de cea mai apropiata fortareata, alaturi de indicele acestei fortarete. Problema este ca tu vei face overwrite pe vectorul fort. Sa presupunem ca ai fort = {1, 3, 4} cu indexare de la 1 si muchie de la 1 la 2 de cost 3 sa zicem. Vei seta fort[2] = 1, iar astfel fort = {1, 1, 4}. Tu nu vei mai extinde fortareata 3. Bafta! :thumbup: Titlul: Răspuns: 257 Catun Scris de: Alexandru Valeanu din Februarie 02, 2013, 15:58:56 Am gasit problemele...mersi de ajutor
Titlul: Răspuns: 257 Catun Scris de: Teudan Adina din Februarie 28, 2013, 18:12:13 Iau 40 de puncte cu WA pe restul, si nu gasesc greseala nicidecum. Ma ajuta si pe mine cineva? :-s
Titlul: Răspuns: 257 Catun Scris de: Cont Teste din Martie 25, 2013, 17:02:08 @swim406
ai putea incepe prin a spune ce faci :) Titlul: Răspuns: 257 Catun Scris de: Dumitru Robert din Februarie 04, 2014, 19:01:09 Prima data am facut cate un dijkstra cu heap de la fiecare fortareata si am luat 70 ( TLE ). Apoi am facut o singura data dijkstra introducand in heap fortaretele si iau 30 ( WA ). Imi puteti spune va rog unde gresesc la varianta cu un dijkstra ?
Titlul: Răspuns: 257 Catun Scris de: George Marcus din Februarie 04, 2014, 19:46:18 Citat Daca un catun este la distanta egala de doua fortarete, se va considera ca apartine fortaretei cu numarul de identificare minim Nu cred ca iei in considerare asta.Titlul: Răspuns: 257 Catun Scris de: Dumitru Robert din Februarie 04, 2014, 21:19:49 Am sortat fortaretele. Facand asta nu selecteaza automat fortareata cu numarul minim?
Titlul: Răspuns: 257 Catun Scris de: George Marcus din Februarie 05, 2014, 02:47:08 Nu.
Cod: 4 3 2 Titlul: Răspuns: 257 Catun Scris de: Dumitru Robert din Februarie 05, 2014, 12:07:09 Am rezolvat-o. Multumesc mult!
Titlul: Răspuns: 257 Catun Scris de: Vasile Catana din Martie 30, 2014, 19:12:47 Rezolvat :ok:
Titlul: Răspuns: 257 Catun Scris de: Ciofu Serban din Februarie 24, 2015, 15:28:15 Imi poate da cineva testul 5? :-'
Titlul: Răspuns: 257 Catun Scris de: FMI-Coteanu Vlad din Ianuarie 05, 2016, 15:30:53 Putin ajutor??
http://www.infoarena.ro/job_detail/1562827 Folosesc Heap, si Dijkstra o singura data, plecand de la valori nule pentru fortarete. Titlul: Răspuns: 257 Catun Scris de: George Marcus din Ianuarie 05, 2016, 16:08:58 Scrie cod ingrijit daca vrei sa ti-l citeasca cineva.
Titlul: Răspuns: 257 Catun Scris de: FMI-Coteanu Vlad din Ianuarie 05, 2016, 16:51:19 Scrie cod ingrijit daca vrei sa ti-l citeasca cineva. Am sters comentariile si am aranjat parantezele...mai e ceva?Titlul: Răspuns: 257 Catun Scris de: Craciun Ioan-Flaviu din August 01, 2016, 17:25:50 Am incercat si eu o implementare la pb asta, si am facut cate un dijkstra pentru fiecare catun, sa vad cea mai apropiata fortareata, dar imi iau un tle pe 5 teste. Any help?
http://www.infoarena.ro/job_detail/1736420 Titlul: Răspuns: 257 Catun Scris de: Bogdan Pop din August 01, 2016, 18:51:03 Am incercat si eu o implementare la pb asta, si am facut cate un dijkstra pentru fiecare catun, sa vad cea mai apropiata fortareata, dar imi iau un tle pe 5 teste. Any help? Ceea ce faci e mai mult Bellman-Ford decat Dijkstra.Oricum,asta nu e neparat relevant.O ideea ar fi sa nu pornesti de la fiecare catun spre fortarete ci sa incepi cu fortaretele.Iti tii un vector de fortarete si unul de costuri.In vectorul de fortarete tii fortareata cea mai apropiata si in cel de distante distanta pana la ea.Initializezi distantele la toate fortaretele cu 0,iar fortareata cea mai apropiata de fiecare o setezi ca ea insasi(evident).Cand actualizezi distanta minima la un nod,actualizezi si fortareata cea mai apropiata care este evident,fortareata cea mai apropiata a nodului care il preceda pe nodul curent in drumul minim spre o fortareata.La final,afisezi vectorul de fortarete,iar pentru elementele care stii ca sunt fortarete,afisezi 0.Ideea e ca si la un Dijkstra/Bellman-Ford clasic,dar in loc sa incepi de la un nod,incepi de la mai multe,punandu-le pe toate in coada/heap initial,iar apoi actualizezi inca un detaliu pe langa distanta.http://www.infoarena.ro/job_detail/1736420 Sper ca am fost de ajutor. Titlul: Răspuns: 257 Catun Scris de: Craciun Ioan-Flaviu din August 11, 2016, 13:24:21 Gata, mersi fain, am facut sursa de 100p.
Cat despre confuzia mea dintre bell/dijkstra, cand am incercat prima oara sa invat dijkstra am gasit numai surse cu bell la problema de pe infoarena si am crezut ca aia e. Mai tarziu cand am invatat bell am observat ca sursele erau foarte similare intre ele si nu stiam care-i care. My bad.. Titlul: Răspuns: 257 Catun Scris de: Robert Banu din Mai 13, 2017, 12:59:51 Sal .
Testele de la problema asta sunt scrise prost pt java care aparent e ceva mai lent decat c++ ul . Literalmente acelasi program ia numai 60 pct scris in java si 100 fara probleme scris in c++ . Titlul: Răspuns: 257 Catun Scris de: Alexandru Valeanu din Mai 13, 2017, 13:56:38 Nu testele sunt de vina. Limita de timp de la problema nu este adaptata pentru Java.
Titlul: Răspuns: 257 Catun Scris de: Dragancea Constantin din Iulie 26, 2017, 12:58:05 putin ajutor va rog
http://www.infoarena.ro/job_detail/2004956?action=view-source nu inteleg de ce iau WA pe 5 teste. Fac Dijkstra punand toate fortaretele in heap la inceput, mentinand 2 arrayuri pt distante si fortarete. Am verificat si conditia pt catun minim. Titlul: Răspuns: 257 Catun Scris de: Arhire Andrei din Februarie 20, 2019, 00:08:31 In teste n <= 32000
:banana: Titlul: Răspuns: 257 Catun Scris de: The Bearded din Martie 06, 2019, 13:46:35 Eu am niste probleme cu testul 7. Primesc 90 puncet dar testul 7 nu vrea sa reuseasca. ](*,)
|