•bogdan2412
|
 |
« : Martie 17, 2007, 12:21:04 » |
|
Aici puteţi discuta despre problema Oite.
|
|
|
Memorat
|
|
|
|
•cos_min
|
 |
« Răspunde #1 : Aprilie 09, 2007, 21:08:11 » |
|
|
|
|
Memorat
|
vid...
|
|
|
•Binary_Fire
Client obisnuit

Karma: 82
Deconectat
Mesaje: 87
|
 |
« Răspunde #2 : Aprilie 09, 2007, 22:15:16 » |
|
|
|
|
Memorat
|
|
|
|
•cos_min
|
 |
« Răspunde #3 : Aprilie 10, 2007, 10:42:58 » |
|
Ce complexitate este necesara pentru 80 de pcte si pentru 100 de pcte ?
|
|
|
Memorat
|
vid...
|
|
|
•wefgef
|
 |
« Răspunde #4 : Aprilie 15, 2007, 19:48:07 » |
|
O(N^2 log N) - 80 O(N^2) - 100
|
|
|
Memorat
|
omului i-au fost date instinctele pentru a supravietui, nu pentru a fi sclavul lor.
|
|
|
•arenakadaff
Strain
Karma: 0
Deconectat
Mesaje: 4
|
 |
« Răspunde #5 : Aprilie 30, 2007, 15:17:58 » |
|
Cazuri particulare ceva? K imi iau wrong answer pe 2 teste. Si nush ce as putea greshi....
|
|
|
Memorat
|
|
|
|
•cos_min
|
 |
« Răspunde #6 : Aprilie 30, 2007, 17:29:34 » |
|
Un hint pentru o rezolvare optima ? Nu ma prind nicicum 
|
|
|
Memorat
|
vid...
|
|
|
•stef2n
|
 |
« Răspunde #7 : Aprilie 30, 2007, 19:13:14 » |
|
Hashing 
|
|
|
Memorat
|
Exista 10 categorii de oameni: cei care inteleg sistemul binar si cei care nu il inteleg.
|
|
|
•cos_min
|
 |
« Răspunde #8 : Aprilie 30, 2007, 19:46:18 » |
|
Merci. Atunci un bun motiv sa invat hashing 
|
|
|
Memorat
|
vid...
|
|
|
•Marius
|
 |
« Răspunde #9 : Mai 04, 2007, 00:09:51 » |
|
Am folosit map din C++ si am luat 2 TLE ... Cum ati implementat hashul ?
|
|
« Ultima modificare: Mai 04, 2007, 20:41:45 de către Marius Stroe »
|
Memorat
|
Faceti lucrurile simplu: pe cat de simplu posibil, dar nu mai simplu.
|
|
|
•amadaeus
Client obisnuit

Karma: 28
Deconectat
Mesaje: 93
|
 |
« Răspunde #10 : Mai 04, 2007, 21:00:54 » |
|
Am folosit map din C++ si am luat 2 TLE ... Cum ati implementat hashul ?
Map din STL este de fapt un arbore rosu-negru, deci update si query logaritmic. Foloseste un hash "home-brewed" 
|
|
|
Memorat
|
"one of these days I'm going to cut you into little pieces..."
|
|
|
•Marius
|
 |
« Răspunde #11 : Mai 05, 2007, 13:45:53 » |
|
O(N^2 log N) - 80 O(N^2) - 100
O(N 2 log N) cu constanta 2 merge de 100.
|
|
« Ultima modificare: Mai 06, 2007, 22:48:42 de către Marius Stroe »
|
Memorat
|
Faceti lucrurile simplu: pe cat de simplu posibil, dar nu mai simplu.
|
|
|
•DITzoneC
|
 |
« Răspunde #12 : Mai 06, 2007, 17:59:44 » |
|
Mda, calculatorul pe care se face evaluarea la infoarena este mai rapid decat cel care s-a folosit la Stele si aici nu prea se mai poate face diferenta intre N2*log N si N2.
|
|
|
Memorat
|
|
|
|
•peanutz
|
 |
« Răspunde #13 : Iulie 12, 2007, 23:16:58 » |
|
Cum tre sa faci hashing-ul? L-am facut cu modulo si am folosit vector din stl, si nu prea merge mai mult de 50. Ce fel de hash tre sa fac pentru 100? Sau sa schimb vector cu liste?
|
|
|
Memorat
|
....staind....
|
|
|
•mika17
Strain
Karma: 8
Deconectat
Mesaje: 33
|
 |
« Răspunde #14 : Ianuarie 15, 2009, 23:27:49 » |
|
Tot 90pct iau si ma gandesc la prob asta de ceva timp Ideea mea e ca la inceput sa inserez toate perechile de sume (i,j) cu i = 3 .. n - 1 si j = i + 1 .. n Apoi int cnt = 0; for(int j=2;j<=N-2;++j) { for(int i=1; i<j; ++i) cnt += count(S - c[i] - c[j]);
for(int i=j+2;i<=N;++i) erase(c[j+1] + c[i]); }
Astfel scot per total scot un numar minim de comparatii intre elemente ... corectatima daca gresesc Ca hash am incercat tot ce se putea ... Open Addressing cu 2 hash, hash dublu, acum folosesc un hash simplu cu metoda inmultirii Trebuie alta abordare totusi? Eu pt hash folosesc un vector<int> de 3033 elemente (la prob hashuri a intrat lejer in timp) . Trebuie facut hashul altfel ? . Am incercat si dimensiuni mai mari ( < 660013) dar merge mult mai greoi Deci mai mult de atat nu vad ce as mai putea optimiza la rezolvarea cu hash-uri vorbind , cea cu cautarea binara n-am incercato edit : am bagat un sort() si am luat 100  Ms Andrei 
|
|
« Ultima modificare: Ianuarie 16, 2009, 00:13:48 de către Mihai Alex Ionescu »
|
Memorat
|
|
|
|
•Mishu91
|
 |
« Răspunde #15 : Ianuarie 15, 2009, 23:49:28 » |
|
Sorteaza elementele  Si eu luam 90 cu un TLE, si dupa sortare -> 100 
|
|
|
Memorat
|
|
|
|
•APOCALYPTO
|
 |
« Răspunde #16 : August 04, 2010, 10:12:59 » |
|
Imi poate spune si mie cineva cum sa rezolv problema coliziunilor daca fac problema cu map(sau cu hash_map)? Pentru ca voi avea mai multe sume egale care sunt obtinute din elelmente diferite  (de examplu pe testul lui cos_min). Multumesc anticipat!
|
|
|
Memorat
|
|
|
|
•Mishu91
|
 |
« Răspunde #17 : August 04, 2010, 10:41:25 » |
|
Cu un multimap sau hash_multimap. Dar limita de timp pare destul de strânsă, nu am reușit mai mult de 80 cu hash_multimap.
|
|
|
Memorat
|
|
|
|
•pauldb
|
 |
« Răspunde #18 : August 05, 2010, 04:36:34 » |
|
Eu am luat 100 cu unordered_map.
Nu prea inteleg ce coliziuni trebuie sa tratezi. Pur si simplu numeri de cate ori apare o suma.
|
|
|
Memorat
|
Am zis 
|
|
|
•APOCALYPTO
|
 |
« Răspunde #19 : August 05, 2010, 08:25:25 » |
|
Eu am luat 100 cu unordered_map.
Nu prea inteleg ce coliziuni trebuie sa tratezi. Pur si simplu numeri de cate ori apare o suma.
8 10 1 1 2 2 3 3 4 4 Pai daca avem testul asta 1+4=5(primul si penultimul) 1+4=5(al doilea si ultimul) 1+4=5(primul si ultimul) 2+3=5 2+3=5 1+3=4 1+3=4 Iar eu trebuie sa bag sumele astea intr-un hash. Eu am folosit sumele ca Key si o sa am mai multe perechi de numere cu aceiasi suma si la unele perechi nu voi putea ajunge ca sa le pot numara daca folosesc map.
|
|
|
Memorat
|
|
|
|
•pauldb
|
 |
« Răspunde #20 : August 05, 2010, 09:55:49 » |
|
Nu inteleg ce te impiedica sa ajungi la ele. Probabil nu stii sa utilizezi un map prea bine. Merge sa faci in felul urmator: (unordered_)map <int, int> m;
...
for (int i = 1; i <= n; i++) for (int j = i+1; j <= n; ++j) m[a[i]+a[j]]++;
In m[ s ] retii de cate ori apare suma s, daca a fost introdusa in (unordered_)map.
|
|
|
Memorat
|
Am zis 
|
|
|
•blasterz
|
 |
« Răspunde #21 : August 05, 2010, 11:03:31 » |
|
cred ca el vrea sa afle cum verifici daca cei 4 indici sunt distincti 
|
|
|
Memorat
|
|
|
|
•Mishu91
|
 |
« Răspunde #22 : August 05, 2010, 12:19:45 » |
|
Pentru a fi sigur că cei patru indici sunt distincți baleiezi prin șir și fixezi pe rând câte un element. Vei alege doi indici din dreapta elementului și doi din stânga elementului.
|
|
|
Memorat
|
|
|
|
•SebiSebi
|
 |
« Răspunde #23 : Aprilie 06, 2012, 12:42:23 » |
|
Nu am reusit sa trec de 90( nici cu double hashing macar ). Am incercat sa sortez fiecare lista cu sort(), si am luat TLE pe 8 teste. Ma poate lamurii cineva. Multumesc anticipat!
|
|
« Ultima modificare: Aprilie 06, 2012, 16:34:04 de către Pirtoaca George Sebastian »
|
Memorat
|
|
|
|
|
|