•stef2n
|
 |
« : Martie 27, 2010, 13:45:09 » |
|
Aici puteți discuta despre problema Inv.
|
|
|
Memorat
|
Exista 10 categorii de oameni: cei care inteleg sistemul binar si cei care nu il inteleg.
|
|
|
•w4nt3d
Strain
Karma: 0
Deconectat
Mesaje: 2
|
 |
« Răspunde #1 : Martie 27, 2010, 21:34:48 » |
|
Cum pot sa nu depasesc timpul la problema asta?
Am reusit sa o fac doar de 30 pct.
|
|
|
Memorat
|
|
|
|
•Mishu91
|
 |
« Răspunde #2 : Martie 27, 2010, 21:39:34 » |
|
Cum pot sa nu depasesc timpul la problema asta?
Am reusit sa o fac doar de 30 pct.
Să o rezolvi în complexitate optimă, O(NlogN). 
|
|
|
Memorat
|
|
|
|
•w4nt3d
Strain
Karma: 0
Deconectat
Mesaje: 2
|
 |
« Răspunde #3 : Martie 27, 2010, 21:52:40 » |
|
Usor de zis... Imi puteti da mai multe indicatii?
|
|
|
Memorat
|
|
|
|
•mathboy
|
 |
« Răspunde #4 : Martie 27, 2010, 22:05:06 » |
|
Arbori indexati binar sau arbori de intervale. Tu alegi 
|
|
|
Memorat
|
|
|
|
•Mishu91
|
 |
« Răspunde #5 : Martie 27, 2010, 22:06:10 » |
|
Normalizezi numerele date, iar apoi ții un arbore indexat binar pentru a afla câte numere parcurse anterior sunt mai mari decât numărul actual.
|
|
|
Memorat
|
|
|
|
•blasterz
|
 |
« Răspunde #6 : Martie 27, 2010, 22:22:44 » |
|
Exista o solutie folosind divide et impera (merge_sort putin modificat) care cred ca e mai abordabila de catre un elev de clasa a10a.
|
|
|
Memorat
|
|
|
|
•Cristi09
Strain
Karma: 0
Deconectat
Mesaje: 2
|
 |
« Răspunde #7 : Aprilie 09, 2010, 15:45:03 » |
|
Salut! Am incercat rezolvarea problemei ca in solutie(folosind un arbore de intervale) si iau 90pct(TLE pe testul 9),dar nu imi dau seama ce-as mai putea optimiza. As vrea sa stiu daca normalizarea se mai poate imbunatati: int arb[264010],n,v[100000]....; struct structura { int pos,val; }; ..... ifstream f("inv.in"); f>>n; int i; structura sort[100000]; for(i=0;i<n;++i) {f>>v[i];sort[i].val=v[i];sort[i].pos=i;} f.close(); qsort(sort,n,sizeof(structura),cmp); int ct=0; for(i=0;i<n;++i) { if(sort[i].val!=sort[i-1].val)++ct; v[sort[i].pos]=ct; } Multumesc anticipat!
|
|
|
Memorat
|
|
|
|
•SpiderMan
|
 |
« Răspunde #8 : Aprilie 09, 2010, 16:35:21 » |
|
Incearca sa sortez cu ajutor Sortului din STL: sort (vector, vector + nr.elemente) - incepand de la vector[0] -> vector[nr.elemente-1] sort (vector + 1, vector + nr.elemente + 1) - incepand de la vector[1]-> vector[nr.elemente] Trebuie sa incluzi headerul algorithm.
|
|
|
Memorat
|
|
|
|
•Cristi09
Strain
Karma: 0
Deconectat
Mesaje: 2
|
 |
« Răspunde #9 : Aprilie 09, 2010, 17:25:04 » |
|
Multumesc mult!  Am luat 100! P.S. De acum inainte nu-am sa mai folosesc qsort-ul.
|
|
|
Memorat
|
|
|
|
•SpiderMan
|
 |
« Răspunde #10 : Aprilie 09, 2010, 17:25:57 » |
|
E mult mai util Sortul din STL si mai usor, pentru mai multe detalii aici .
|
|
|
Memorat
|
|
|
|
•MciprianM
|
 |
« Răspunde #11 : Mai 05, 2010, 18:26:08 » |
|
Asta e prima problema pe care am facut-o cand am fost eu la excelenta pe clasa a 11-a la domnul profesor Ilea ( cu merge sort ) asa ca m-am bucurat mult cand am intalnit-o din nou. Si CezarMocan era acolo. Nu stiu cum de ia doar 60 de puncte. Poate ne spune ce algoritm incearca(cu cautare binara?)  ; P.S.: Problema asta apare si in Cormen, iar pe timus este o variatie(problema 1090).
|
|
|
Memorat
|
|
|
|
•wefgef
|
 |
« Răspunde #12 : Mai 05, 2010, 20:09:16 » |
|
Eh, Cezar ia 60 din cauza ca nu stie sa normalizeze  .
|
|
|
Memorat
|
omului i-au fost date instinctele pentru a supravietui, nu pentru a fi sclavul lor.
|
|
|
•vladtarniceru
|
 |
« Răspunde #13 : Decembrie 27, 2010, 21:55:18 » |
|
din complexitatea oficiala (NlogN), logN e de la cautare binara?
|
|
|
Memorat
|
|
|
|
•blasterz
|
 |
« Răspunde #14 : Decembrie 27, 2010, 22:04:27 » |
|
Nu... sunt 2 solutii. La una logn vine de la aib / arbore de intervale. Iar la cealalta solutie e un fel de merge-sort
|
|
|
Memorat
|
|
|
|
•VisuianMihai
|
 |
« Răspunde #15 : Decembrie 22, 2011, 19:18:03 » |
|
Merge sort, aib sau robert spunea quicksort in STL. Oare un radix sort nu ar merge?
|
|
|
Memorat
|
|
|
|
•SpiderMan
|
 |
« Răspunde #16 : Decembrie 22, 2011, 19:45:48 » |
|
Merge sort, aib sau robert spunea quicksort in STL. Oare un radix sort nu ar merge?
Daca merge N log N, o sa mearga si radix sortul in N * C (C = constanta mica). Si vezi ca in STL e introsort, nu quicksort  .
|
|
|
Memorat
|
|
|
|
•klamathix
|
 |
« Răspunde #17 : Decembrie 22, 2011, 20:30:28 » |
|
Radix sort-ul nu e N * constanta mica. N* lungimea medie a radixului eventual, si nu ai cum sa alegi un radix care sa nu depinda nici de N si nici de magnitudinea numerelor. Vezi ca tu trebuie sa numeri inversiunile, nu sa sortezi. Gandeste-te la asta.
|
|
|
Memorat
|
|
|
|
•VisuianMihai
|
 |
« Răspunde #18 : Decembrie 22, 2011, 21:57:41 » |
|
Ceva nu e bine. Imi da KBS la toate si daca declar vector de 5.000.000 sau 100.001 si nu stiu de ce.
|
|
|
Memorat
|
|
|
|
•an_drey_curent
Strain
Karma: 4
Deconectat
Mesaje: 24
|
 |
« Răspunde #19 : Februarie 18, 2012, 10:27:40 » |
|
Am normalizat vectorul. Incerc sa fac un arbore de intervale in care: in nodurile interne memorez minimul din intervale. Daca minimul e mai mare decat elementul actual, atunci am gasit ,,lungimea intervalului" inversiuni si nu caut mai departe in acel interval. Daca am ajuns pe frunza, compar cu elementul actual si daca e mai mare(frunza), adun la rezultat 1. Apoi inserez in arbore elementul actual ... Ori ideea de a folosi arborele de intervale nu e buna, ori implementarea ca iau 20 de puncte Implementarea e cam identica cu problema din arhiva educationala. Update: Rezolvata, nu era ideea buna de folosire a arborelui.
|
|
« Ultima modificare: Februarie 18, 2012, 11:16:47 de către Neculai Andrei »
|
Memorat
|
|
|
|
•repp4radu
|
 |
« Răspunde #20 : Martie 01, 2012, 12:33:22 » |
|
Am implementat ideea cu merge sort in O(n log n) si imi da ok pe toate testele pe care mi le-am dat eu, dar la evaluare prind numai testul 10. Mi-ati putea da unul din testele de la aceasta problema sa imi dau seama ce nu fac bine? Multumesc anticipat! LE: am rezolvat. Uitam sa fac restul impartirii  )
|
|
« Ultima modificare: Martie 01, 2012, 12:55:11 de către Szasz Radu »
|
Memorat
|
|
|
|
•ion824
Strain
Karma: 11
Deconectat
Mesaje: 17
|
 |
« Răspunde #21 : Martie 04, 2012, 14:50:58 » |
|
Am facut o rezolvare dupa cum e spus in solutia oficiala dar iau doar 70p. Mă gândesc că greseala ar putea fi in cautarea numarului de pozitii mai mari ca cea curenta. Eu fac asa:partea cu sortarea , apoi caut in arbore pozitia curenta+1 si cind o gasesc ca limita de jos a intervalului ce-l contine nodul dat atunci adaug valoarea data si adaug si valoarea descendentului drept in caz ca div+1>val , apoi introduc in arbore si pozitia elementului curent. Poate are cineva idei unde ar putea fi greseala ?
|
|
|
Memorat
|
|
|
|
•Procopliuc
Strain
Karma: 2
Deconectat
Mesaje: 6
|
 |
« Răspunde #22 : Martie 04, 2012, 15:20:20 » |
|
Daca folosesti functia sort din STL vezi sa compari si pozitiile elementelor in caz de egalitate(dupa sortare elementele egale nu pastreaza ordinea din vector).Asta greseam eu,poate te ajuta si pe tine.
|
|
|
Memorat
|
|
|
|
•ion824
Strain
Karma: 11
Deconectat
Mesaje: 17
|
 |
« Răspunde #23 : Martie 04, 2012, 15:42:02 » |
|
Folosesc sortarea din stl ,dar am facut functia de comparare aparte, si am si verificat sortarea pe asha cazuri . Poate cineva care a facut cu arbori de intervale sa-mi explice poate cumva altfel ar trebui sa lucrez cu arborele... L.E. S-a rezolvat. Era problema cu functia de comparare a sortare , in ciuda faptului ca credeam ca merge perfect sortarea. 
|
|
« Ultima modificare: Martie 04, 2012, 20:11:11 de către Ureche Ion »
|
Memorat
|
|
|
|
•mirceati
Strain
Karma: 0
Deconectat
Mesaje: 1
|
 |
« Răspunde #24 : Mai 16, 2014, 10:12:09 » |
|
Help!!! Cum descarc solutiile cpp trimise de participanti?
|
|
|
Memorat
|
|
|
|
|