Titlul: 008 Subsir crescator maximal Scris de: Filip Cristian Buruiana din Aprilie 09, 2008, 09:43:14 Aici puteti discuta despre problema Subsir crescator maximal (http://infoarena.ro/problema/scmax).
Titlul: Răspuns: 008 Subsir crescator maximal Scris de: Herpesius din Aprilie 13, 2008, 12:21:04 Citat Fie un vector a cu N elemente. Numim subir al lui a de lungime K un vector a' = (ai1, ai2, ..., aiK) astfel incat sa avem i1 < i2 < ... < iK. o mica greseala.... Titlul: Răspuns: 008 Subsir crescator maximal Scris de: Dragos Nicolae din Aprilie 25, 2008, 23:11:40 *Primul meu post!*
De ce imi da "Time limit exceeded!" la cel de-al doilea test? Chiar nu imi dau seama. Poate sa se uite cineva pe sursa mea? :wink: Titlul: Răspuns: 008 Subsir crescator maximal Scris de: Pripoae Teodor Anton din Aprilie 25, 2008, 23:14:29 pare bine... dar de ce citesti numerele cu %ld cand ele sunt inturi?
Titlul: Răspuns: 008 Subsir crescator maximal Scris de: Toma Radu din Aprilie 25, 2008, 23:32:48 pentru testul 2, max este initializat cu b[1], insa poz este 0. cum max nu-si mai schimba valoarea aici:
Cod: for (i=1;i<=n;i++) Titlul: Răspuns: 008 Subsir crescator maximal Scris de: Dragos Nicolae din Aprilie 25, 2008, 23:39:36 Merci mult amandurora. Retrimit sursa. :aha:
Yay! 70 pct Titlul: Răspuns: 008 Subsir crescator maximal Scris de: MciprianM din Iunie 19, 2008, 08:02:41 Imi poate da cinneva un link spre explicarea solutiei din cartea lui Catalin Francu la aceasta pb? :'(
Titlul: Răspuns: 008 Subsir crescator maximal Scris de: Andrei Grigorean din Iunie 19, 2008, 10:39:54 In josul paginii: http://www.algorithmist.com/index.php/Longest_Increasing_Subsequence
sau pe wikipedia: http://en.wikipedia.org/wiki/Longest_increasing_subsequence Poate te ajuta si implementarea mea pe aceeasi idee: http://infoarena.ro/job_detail/190091?action=view-source Titlul: Răspuns: 008 Subsir crescator maximal Scris de: MciprianM din Iunie 19, 2008, 12:55:22 ms
Titlul: Răspuns: 008 Subsir crescator maximal Scris de: cont de teste din Septembrie 15, 2008, 13:56:56 Ce alte probleme folosesc sbsir crescator maximal ?
Multumesc Titlul: Răspuns: 008 Subsir crescator maximal Scris de: Gheorghevici Mihai din Martie 04, 2009, 12:03:02 iau 0 puncte. la evaluare arata "Non-zero exit status." insa pentru testele care le dau la mine pe pc el functioneaza :sad:
http://infoarena.ro/job_detail/270611 va rog, cineva sa se uite peste sursa mea... va rog... imi spune cineva :'( Nu posta consecutiv. Editeaza mesajele precedente Titlul: Răspuns: 008 Subsir crescator maximal Scris de: Savin Tiberiu din Martie 04, 2009, 18:59:56 Exista un topic intitulat mesaje de eroare. Intrebarea ta a mai fost pusa de vreo cateva ori.
Titlul: Răspuns: 008 Subsir crescator maximal Scris de: Berceanu Cristian din Martie 28, 2009, 16:45:30 Imi spune si mie cineva ce am inteles gresit la problema asta de iau doar 20 de p?
Titlul: Răspuns: 008 Subsir crescator maximal Scris de: Florian Marcu din Martie 28, 2009, 20:21:35 Spune-ne, mai intai, cum ai inteles-o tu. Asa poate mai ai o sansa sa fii ajutat. :-'
Titlul: Răspuns: 008 Subsir crescator maximal Scris de: Berceanu Cristian din Martie 28, 2009, 21:09:01 Ha :)) pai eu am inteleso asa, in primu rand algoritmul e de O(n^2), deci iau maxim 70p. Ideea mea este asa: prima data iau in vector sirul de numere apoi parcurg vectorul si pentru fiecare v merg cu un j, care initial este i si pun intr-o stiva v[j] daca este mai mare decat toate celelalte elemente din stiva si cand am gasit o stiva de lungime maxima o retin, apoi afisez stiva. E bine?
Titlul: Răspuns: 008 Subsir crescator maximal Scris de: Florian Marcu din Martie 29, 2009, 09:48:10 Nu. Citeste cu atentie indicatiile de rezolvare:
Citat O prima rezolvare utilizeaza programarea dinamica. Se noteaza best[ i ] - lungimea maxima a unui subsir crescator care se termina pe pozitia i . Obtinem astfel urmatoarea relatie de recurenta: best [ i ] = 1 + max(best[j]) cu 1 ≤ j < i si a[ j ] < a[ i ] . Pentru a reconstrui solutia mai retinem un vector cu semnificatia pre[ i ] - pozitia valorii care preceda elementul i in subsirul crescator care se termina pe pozitia i. In opinia mea, e destul de bine explicat... :-k Titlul: Răspuns: 008 Subsir crescator maximal Scris de: Lazari Mihai din Mai 10, 2009, 14:12:24 M-am uitat la sursa oficiala cu AIB (http://infoarena.ro/job_detail/146356?action=view-source (http://infoarena.ro/job_detail/146356?action=view-source)) si am vazut ca se folosesc functii, cum ar fi sort si lower_bound. Eu nu prea stiu functiile astea, asa ca am facut sortarea folosind un heap (http://infoarena.ro/job_detail/314061 (http://infoarena.ro/job_detail/314061)). Partea cu AIB-urile este cam aceeasi ca si in sursa oficiala. Complexitatea programului parca e tot O(N*log2N). De ce iau TLE la testele 8 si 10? :?
Titlul: Răspuns: 008 Subsir crescator maximal Scris de: Tataranu Vlad din Mai 10, 2009, 15:27:15 M-am uitat la sursa oficiala cu AIB (http://infoarena.ro/job_detail/146356?action=view-source (http://infoarena.ro/job_detail/146356?action=view-source)) si am vazut ca se folosesc functii, cum ar fi sort si lower_bound. Eu nu prea stiu functiile astea, asa ca am facut sortarea folosind un heap (http://infoarena.ro/job_detail/314061 (http://infoarena.ro/job_detail/314061)). Partea cu AIB-urile este cam aceeasi ca si in sursa oficiala. Complexitatea programului parca e tot O(N*log2N). De ce iau TLE la testele 8 si 10? :? Functiile de care vorbesti sunt din librariile STL, vezi mai multe in articolul asta http://infoarena.ro/stl (http://infoarena.ro/stl) si pe http://www.sgi.com/tech/stl/ (http://www.sgi.com/tech/stl/).Heapsort de mana merge mai incet decat sort din STL, probabil de-aia iei TLE ;) Titlul: Răspuns: 008 Subsir crescator maximal Scris de: Lazari Mihai din Mai 10, 2009, 17:59:32 Mersi, m-am uitat. Mi se par la inceput un pic cam dificile functiile astea, dar poate ca e doar o aparenta. Cat despre problema, am luat 100p. cu MergeSort :yahoo: , si este si codul mai scurt :roll:
Titlul: Răspuns: 008 Subsir crescator maximal Scris de: Finaru Andrei Emanuel din Ianuarie 07, 2010, 17:44:29 *first post by noob:(* eu zic ca am scris o sursa de 70 da imi da WA la 8 teste... si fiindca unul din testele la care am rezultatul corect e grupat cu altele 2 nu-mi da decat punctele de la celalalt:| daca ma puteti ajuta as aprecia.
Titlul: Răspuns: 008 Subsir crescator maximal Scris de: Florian Marcu din Ianuarie 07, 2010, 17:55:49 Tu rezolvi problema pentru subsecventa. Trebuie sa o faci pentru subsir ( care nu are elementele pe pozitii consecutive in sirul initial ). Citeste cu atentie enuntul! :)
Titlul: Răspuns: 008 Subsir crescator maximal Scris de: Finaru Andrei Emanuel din Ianuarie 07, 2010, 18:29:56 Mersi mult:)
Titlul: Răspuns: 008 Subsir crescator maximal Scris de: Pavel Razvan din Februarie 05, 2010, 11:20:12 Am si eu o nelamurire : iau 65 pct si am verificat testele pe care iau "Subsir incorect!" si programul meu afiseaza alte numere, dar totusi le-am verificat cu un alt program si subsirul e bun. De ce primesc atunci "Subsir incorect!" , atata timp cand
Citat Daca exista mai multe solutii se poate afisa oricare. http://infoarena.ro/job_detail/391192 :readthis:Va rog sa ma lamuriti ! Multumesc anticipat ! Titlul: Răspuns: 008 Subsir crescator maximal Scris de: Ilie Ionut din Februarie 05, 2010, 13:06:37 M-am uitat pe sursa ta si mi-am dat seama ca tu cauti binar pozitia din b pentru fiecare element, ceea ce nu iti garanteaza ca la sfarsit elementele se vor gasi in aceeasi ordine in sirul initial (adica in b nu ai un subsir). De exemplu, la testul 3 programul tau afiseaza:
Citat 38 iar in sirul din fisierul de intrare, numarul 18812311 e inaintea lui 13552532.6625742 13552532 18812311 (...) Titlul: Răspuns: 008 Subsir crescator maximal Scris de: Pavel Razvan din Februarie 05, 2010, 14:34:37 Deci asta era ! :shock:
Merci beaucoup! Titlul: Răspuns: 008 Subsir crescator maximal Scris de: alexandru din Februarie 14, 2010, 13:37:06 Ar putrea sa-mi dea cineva un hint despre cum pot rezolva problema folosind aib ? :)
Titlul: Răspuns: 008 Subsir crescator maximal Scris de: Mircea Dima din Februarie 14, 2010, 15:54:27 Normalizezi vectorul, ca să ai elemente în intervalul 1-n.
Te gândeşti la dinamica normală : dp[ i ] = max ( dp [ j ] cu a [ i ] > a [ j ] ) + 1 E si tu trebuie să iei un maxim din dp- urile până în momentul respectiv, dar luând în considerare doar elementele mai mici decât a [ i ]. Deci o să menţii un aib[1 . . . Valoarea maximă a din vectorul normalizat ] ce îţi da maximul dp-urilor elementelor < o anumită valoare. Sper că ai înţeles unde bat. . . PS. Sunt pe tren si editez de pe mobil Titlul: Răspuns: 008 Subsir crescator maximal Scris de: alexandru din Februarie 14, 2010, 17:24:01 In mare cred ca mi-am facut o imagine, multumesc :)
Dar ce inseamna "normalizezi vectorlul", il sortezi ? Titlul: Răspuns: 008 Subsir crescator maximal Scris de: Andrei Misarca din Februarie 14, 2010, 17:57:07 Îl sortezi și reții doar ordinea numerelor. De exemplu, șirul 13 98 44 11 va deveni 2 4 3 1.
Titlul: Răspuns: 008 Subsir crescator maximal Scris de: Cancel Radu Constantin din Februarie 27, 2010, 19:22:29 cine ma poate ajuta si pe mine putin? m-am gandit sa rezolv problema in felul urmator:
fac un for cu care citesc sirul, dar in acelasi timp fac si comparatiile atunci cand urmatorul numar nu mai este ordonat, verific daca lungimea sirului este maxima, si salvez cu max locul de unde incepe sirul, si cu nrmax nr de elemente crescatoare care nu se repeta dar nu stiu din ce motiv, pe 7teste nu e bun nr maxim de elemente ordonate :? cine imi poate da un indiciu? http://infoarena.ro/job_detail/405201?action=view-source Titlul: Răspuns: 008 Subsir crescator maximal Scris de: Florian Marcu din Februarie 27, 2010, 20:23:31 Tu calculezi cea mai lunga subsecventa crescatoare. Problema cere cel mai lung subsir crescator. subsir != subsecventa.
Titlul: Răspuns: 008 Subsir crescator maximal Scris de: Cancel Radu Constantin din Februarie 27, 2010, 20:31:32 si care e diferenta ca nu ma prind :?
Titlul: Răspuns: 008 Subsir crescator maximal Scris de: Florian Marcu din Februarie 27, 2010, 20:35:02 subsecventa = elementele apar pe poziti consecutive in sirul initial
subsir = elementele nu apar neaparat pe pozitii consecutive in sirul initial. Titlul: Răspuns: 008 Subsir crescator maximal Scris de: Cancel Radu Constantin din Februarie 27, 2010, 20:43:31 aha,ms
se pare ca nu am fost prea atent :D poate o sa refac sursa maine Titlul: Răspuns: 008 Subsir crescator maximal Scris de: Sergiu-Ioan Ungur din Martie 01, 2010, 17:24:40 Imi poate spune cineva daca as mai putea face optimizari la sursa mea cu arbori de intervale sa iau 100p? Iau TLE pe un test si nu stiu ce sa mai optimizez :-k .
L.E. Am mai trimis-o o data si am luat 100p :yahoo: . Se pare ca timpul de rulare se afla chiar la limita. Titlul: Răspuns: 008 Subsir crescator maximal Scris de: Ariel Chelsau din Septembrie 20, 2010, 23:07:03 V-as ruga, daca puteti, sa postati un link cu explicatia rezolvarii folosind arbori indexati binar (am cautat si nu am gasit).
Va multumesc! Titlul: Răspuns: 008 Subsir crescator maximal Scris de: Mardare Rares din Decembrie 14, 2010, 17:16:00 Imi da careva un hint/ o idee cum se face cu arbori de intervale ? In comentarii n-am gasit... iar sursele... plagiate una dupa alta (toate cu cautare binara) :))
arbori de intervale nu AIB !!!! Titlul: Răspuns: 008 Subsir crescator maximal Scris de: Paul-Dan Baltescu din Decembrie 14, 2010, 19:19:40 Sortezi numerele in ordine crescatoare, iar atunci cand adaugi un numar nou, vrei sa numeri cate numere au fost introduse deja in stanga pozitiei. Daca intelegi ce se intampla intr-o sursa cu AIB, exact aceeasi operatie se poate efectua si cu un arbore de intervale.
Titlul: Răspuns: 008 Subsir crescator maximal Scris de: Geiszt Attila din Martie 05, 2011, 18:18:21 Imi pare rau, dar la indicatii nu trebuia scris ca best este lungimea unui subsir crescator care incepe cu pozitia i? Pentru ca pe exemplu best este [1 3 2 2 1], si cea cu 3 elemente incepe cu 12.
Titlul: Răspuns: 008 Subsir crescator maximal Scris de: Gabriel Bitis din Martie 06, 2011, 13:55:56 E ok la indicatii. Pe exemplu, vectorul best e [1, 1, 2, 2, 3].
Se construieste vectorul de la prima spre ultima pozitie, tu probabil stii o rezolvare care construieste best de la ultima spre prima pozitie. Uita-te la recurenta, poate te ajuta sa intelegi de ce e corect : best = 1 + max(best[j]) 1 <= j < i, deci nu ai cum sa obtii best[2] = 3. Titlul: Răspuns: 008 Subsir crescator maximal Scris de: Geiszt Attila din Martie 06, 2011, 16:05:26 E ok la indicatii. Pe exemplu, vectorul best e [1, 1, 2, 2, 3]. Se construieste vectorul de la prima spre ultima pozitie, tu probabil stii o rezolvare care construieste best de la ultima spre prima pozitie. Uita-te la recurenta, poate te ajuta sa intelegi de ce e corect : best = 1 + max(best[j]) 1 <= j < i, deci nu ai cum sa obtii best[2] = 3. Da, ai drepate, e acelasi lucru dar eu faceam in sens opus. Mersi! Titlul: Răspuns: 008 Subsir crescator maximal Scris de: Nicolae Titus din Aprilie 08, 2011, 01:12:17 vreo idee de ce iau memory limit exceeded la solutia asta (http://infoarena.ro/job_detail/575217) pentru cazul 2?
Later edit : problem solved, am pus prev[1]=1; in loc de prev[1]=0; Editat de moderator: Nu posta de mai multe ori consecutiv pe acelasi subiect, editeaza posturile anterioare. Titlul: Răspuns: 008 Subsir crescator maximal Scris de: Mihai Visuian din Noiembrie 29, 2011, 16:57:00 imi puteti explica si mie metoda cu cautare binara? nu prea inteleg ce face...
Titlul: Răspuns: 008 Subsir crescator maximal Scris de: Adavidoaiei Dumitru-Cornel din Ianuarie 14, 2012, 13:27:34 Cum pot vedea testele care ruleaza in Monitorul de Evaluare ca sa pot sa le iau local si sa fac debug, ca sa vad ce am gresit.
Titlul: Răspuns: 008 Subsir crescator maximal Scris de: Simoiu Robert din Ianuarie 14, 2012, 13:33:30 Pe pagina problemei, http://infoarena.ro/problema/scmax, aici, ai pe chenarul verde, imediat sub tabelul cu datele "tehnice" sa le zic asa, "De asemenea, poti vedea si testele accesand atasamentele". Apesi click pe atasamentele, si acolo ai fiecare test, evaluatorul si etc :D.
Titlul: Răspuns: 008 Subsir crescator maximal Scris de: Adavidoaiei Dumitru-Cornel din Ianuarie 14, 2012, 13:48:29 Am gasit un comment pe problema care raspunde la intrebarea mea: "In coltul din dreapta-sus pe pagina problemei ai un link "Listeaza atasamente"... acolo gasesti si testul si raspunsul."
Titlul: Răspuns: 008 Subsir crescator maximal Scris de: Simoiu Robert din Ianuarie 14, 2012, 13:58:06 Da, e exact ce-am scris si eu, ori dai listeaza atasamente, ori dai pe butonul ala, ai 2 optiuni :P.
Titlul: Răspuns: 008 Subsir crescator maximal Scris de: Adavidoaiei Dumitru-Cornel din Ianuarie 14, 2012, 14:20:58 thanks :) i found
Titlul: Răspuns: 008 Subsir crescator maximal Scris de: Pirtoaca George Sebastian din Februarie 18, 2012, 17:35:50 Cum s-ar putea face cu arbori de intervale ? Iese din timp pe ultimele 3 teste.
Titlul: Răspuns: 008 Subsir crescator maximal Scris de: Stochitoiu Radu din Martie 21, 2012, 22:02:16 Va rog ajutor ! Cum sa fac sa afisez toate solutiile, nu doar una ? (Ma chinui de ceva timp si degeaba)
Titlul: Răspuns: 008 Subsir crescator maximal Scris de: Andrei Grigorean din Martie 21, 2012, 22:16:00 Numarul de solutii creste exponential.
Titlul: Răspuns: 008 Subsir crescator maximal Scris de: Boaca Cosmin din Martie 21, 2012, 22:42:59 Daca vrei sa le afisezi pe toate atunci cand actualizezi valoarea dp[ i ] ,tii o lista cu toate valorile din care poti obtine valoarea maxima pentru dp[ i ] . Iti dau un exemplu , pentru a fi mai clar :
sa zicem ca ai sirul 2 10 15 3 11 16. In acest sir elementele au urmatorii precedenti : 2 -> nu e precedat de nimeni 10-> e precedat de 2 15 -> e precedat de 10 3-> 3 precedat de 2 11 -> e precedat atat de 3 cat si 10 ambele valori ducand la un subsir de lungime 3 16-> e precedat de 11,3,15 toate 3 ducand la un subsir de lungime 4 Acum pentru a genera toate subsirurile maximale algoritmul este urmatorul : Iei fiecare precedent al unui element pentru care dp[ i ] = 4, pentru fiecare precedent iei fiecare precedent al acestuia si tot asa ... pana ajungi la un element ce nu e precedat de nimic . Poate nu am fost suficient de clar , nu sunt tocmai un as al explicatiilor , dar daca mai ai nelamuriri dam un pm si vad cum te pot ajuta , eventual iti dau o sursa sa vezi cum se face . Titlul: Răspuns: 008 Subsir crescator maximal Scris de: Macarescu Sebastian din Octombrie 28, 2012, 18:38:28 Cred ca trebuie marita putin limita de timp. Am implementat o solutie cu normalizare( cu lower_bound) + AIB + parsare si iau tle pe testul 9.
Titlul: Răspuns: 008 Subsir crescator maximal Scris de: Petenchea Alexandru din Noiembrie 07, 2012, 22:28:27 Am incercat sa implementez cu AIB si iau TLE pe testul 9. Nici sursa data ca model nu e de 100, tot din cauza testului 9, desi in josul paginii scrie ca obtine 100 :P .
Modelul : http://infoarena.ro/job_detail/809153 A mea : http://infoarena.ro/job_detail/809148 Titlul: Răspuns: 008 Subsir crescator maximal Scris de: Bratie Fanut din Februarie 09, 2013, 09:23:46 am facut un algoritm cu programare dinamica, complexitatea fiind O(N2). merge dar pe ultimele 3 teste imi da TLE. aveti vreo idee despre cum as putea modifica algoritmul in asa fel incat sa fie mai rapid? :-k
Titlul: Răspuns: 008 Subsir crescator maximal Scris de: George Marcus din Februarie 09, 2013, 12:44:39 Trebuie sa scoti complexitate mai buna. Citeste indicatiile de rezolvare.
Titlul: Răspuns: 008 Subsir crescator maximal Scris de: Bratie Fanut din Februarie 17, 2013, 17:38:43 In sfarsit am luat 100 :winner1: multumesc :D
Titlul: Răspuns: 008 Subsir crescator maximal Scris de: Vlad Costin din Martie 01, 2013, 11:09:41 Solutia cu AIB-uri nu intra in timp (nici macar solutia oficiala) . Nu stiu daca s-a mai zis , dar m-am gandit ca e ok sa stiti.
Titlul: Răspuns: 008 Subsir crescator maximal Scris de: Witsel Andrei din Iulie 30, 2014, 10:33:44 ce inseamna erorile: killed by signal 6 si lungime incorecta. Daca s-ar putea uita cineva pe sursele mele as fi recunoscator:D
Titlul: Subsir crescator maximal Scris de: Mihalache Catalin Alexandru din Ianuarie 31, 2017, 19:33:11 imi poate spune cineva de ce imi apare subsir incorect? :D
Titlul: Răspuns: 008 Subsir crescator maximal Scris de: Nicolae Filat din Aprilie 21, 2017, 12:43:49 Sunt nou pe infoarena si as vrea sa inteleg de ce sursa me primeste doar 10 puncte , am facut mai mult teste pe ea si toate mergeau (ex: 5 54321 : 1 1 ; 5 2412151519 : 3 12 15 19 ..etc).
Plz ajutati-ma ! :D aici e linkul : http://www.infoarena.ro/job_detail/1971925?action=view-source Mersi |