Pagini: [1] 2   În jos
  Imprimă  
Ajutor Subiect: 1008 Inv  (Citit de 6528 ori)
0 Utilizatori şi 1 Vizitator pe acest subiect.
stef2n
Nu mai tace
*****

Karma: 218
Deconectat Deconectat

Mesaje: 641



Vezi Profilul
« : 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 Deconectat

Mesaje: 2



Vezi Profilul
« 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
Nu mai tace
*****

Karma: 169
Deconectat Deconectat

Mesaje: 751



Vezi Profilul
« 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). Smile
Memorat
w4nt3d
Strain


Karma: 0
Deconectat Deconectat

Mesaje: 2



Vezi Profilul
« Răspunde #3 : Martie 27, 2010, 21:52:40 »

Usor de zis... Imi puteti da mai multe indicatii?
Memorat
mathboy
Moderatori infoarena
Nu mai tace
*****

Karma: 150
Deconectat Deconectat

Mesaje: 259



Vezi Profilul
« Răspunde #4 : Martie 27, 2010, 22:05:06 »

Arbori indexati binar sau arbori de intervale. Tu alegi Smile
Memorat
Mishu91
Nu mai tace
*****

Karma: 169
Deconectat Deconectat

Mesaje: 751



Vezi Profilul
« 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
Nu mai tace
*****

Karma: 92
Deconectat Deconectat

Mesaje: 255



Vezi Profilul
« 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 Deconectat

Mesaje: 2



Vezi Profilul
« 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:
Cod:
          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
Nu mai tace
*****

Karma: -463
Deconectat Deconectat

Mesaje: 937



Vezi Profilul
« Răspunde #8 : Aprilie 09, 2010, 16:35:21 »

Incearca sa sortez cu ajutor Sortului din STL:
Cod:
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 Deconectat

Mesaje: 2



Vezi Profilul
« Răspunde #9 : Aprilie 09, 2010, 17:25:04 »

Multumesc mult! Very Happy
Am luat 100!

P.S. De acum inainte nu-am sa mai folosesc qsort-ul.
Memorat
SpiderMan
Nu mai tace
*****

Karma: -463
Deconectat Deconectat

Mesaje: 937



Vezi Profilul
« 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
Nu mai tace
*****

Karma: 87
Deconectat Deconectat

Mesaje: 324



Vezi Profilul
« 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?) Very Happy;
P.S.: Problema asta apare si in Cormen, iar pe timus este o variatie(problema 1090).
Memorat
wefgef
Nu mai tace
*****

Karma: 1049
Deconectat Deconectat

Mesaje: 3.008


razboinicu' luminii


Vezi Profilul
« Răspunde #12 : Mai 05, 2010, 20:09:16 »

Eh, Cezar ia 60 din cauza ca nu stie sa normalizeze Tongue.
Memorat

omului i-au fost date instinctele pentru a supravietui, nu pentru a fi sclavul lor.
vladtarniceru
De-al casei
***

Karma: 81
Deconectat Deconectat

Mesaje: 145



Vezi Profilul
« Răspunde #13 : Decembrie 27, 2010, 21:55:18 »

din complexitatea oficiala (NlogN), logN e de la cautare binara?
Memorat
blasterz
Nu mai tace
*****

Karma: 92
Deconectat Deconectat

Mesaje: 255



Vezi Profilul
« 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 Smile
Memorat
VisuianMihai
De-al casei
***

Karma: -9
Deconectat Deconectat

Mesaje: 121



Vezi Profilul
« 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
Nu mai tace
*****

Karma: -463
Deconectat Deconectat

Mesaje: 937



Vezi Profilul
« 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 Tongue.
Memorat
klamathix
Echipa infoarena
Nu mai tace
*****

Karma: 733
Deconectat Deconectat

Mesaje: 1.216



Vezi Profilul
« 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
De-al casei
***

Karma: -9
Deconectat Deconectat

Mesaje: 121



Vezi Profilul
« 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 Deconectat

Mesaje: 24



Vezi Profilul
« 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  sad
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
Nu mai tace
*****

Karma: 118
Deconectat Deconectat

Mesaje: 204



Vezi Profilul
« 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 Smile)
« Ultima modificare: Martie 01, 2012, 12:55:11 de către Szasz Radu » Memorat
ion824
Strain


Karma: 11
Deconectat Deconectat

Mesaje: 17



Vezi Profilul
« 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 Deconectat

Mesaje: 6



Vezi Profilul
« 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 Deconectat

Mesaje: 17



Vezi Profilul
« 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. Very Happy
« Ultima modificare: Martie 04, 2012, 20:11:11 de către Ureche Ion » Memorat
mirceati
Strain


Karma: 0
Deconectat Deconectat

Mesaje: 1



Vezi Profilul
« Răspunde #24 : Mai 16, 2014, 10:12:09 »

Help!!! Cum descarc solutiile cpp trimise de participanti?
Memorat
Pagini: [1] 2   În sus
  Imprimă  
 
Schimbă forumul:  

Powered by SMF 1.1.19 | SMF © 2006-2013, Simple Machines