|
Titlul: 141 Sortari Scris de: ditzone din Noiembrie 24, 2005, 19:10:39 Aici puteţi discuta despre problema Sortari (http://infoarena.ro/problema/sortari).
Titlul: 141 Sortari Scris de: Andrei Grigorean din Noiembrie 25, 2005, 01:02:14 care e valoarea maxima a lui t?
Titlul: 141 Sortari Scris de: ditzone din Noiembrie 25, 2005, 09:53:37 10
Titlul: 141 Sortari Scris de: cristi8 din Noiembrie 25, 2005, 21:37:09 :-' traiasca time.h si stdlib.h cu tot cu rand() -ul lui..
(100) :P Titlul: 141 Sortari Scris de: Tiberiu-Lucian Florea din Noiembrie 25, 2005, 21:41:09 =D> tot asa ...
Titlul: 141 Sortari Scris de: Filip Cristian Buruiana din Noiembrie 29, 2005, 20:45:14 Complexitatea fara bulaneli [-X este O(2^N * M)? TLE pe 3 teste... Oricum, ma intreb cat ar fi luat un O(N! * M)... :-k Ca un random ia 100 fara probleme.. nu as vrea sa vad problema asta intr-un concurs... :P
Oricum, O(2^N * M) e complexitatea oficiala? Titlul: 141 Sortari Scris de: ditzone din Noiembrie 29, 2005, 21:37:13 Da complexitatea este O(2^n*m) folosind principiu 0-1 in retele de sortare. Problema a fost pusa doar pentru exercitiu nu a fost conceputa pentru concurs motivul fiind randomul care se comporta mai mult decat "binisor".
Un O(n!*m) lua destul de putin... Titlul: 141 Sortari Scris de: vladut.forum din Noiembrie 30, 2005, 16:18:19 :shock: am aflat in cele din urma ca ce faceam eu, era adevarat, adika chestia asta cu 0-1,
Titlul: 141 Sortari Scris de: cristi8 din Noiembrie 30, 2005, 16:51:33 cum se face cu "0-1" ? care e principiul 0-1 in retelele de sortare ?
Titlul: 141 Sortari Scris de: Bogdan-Cristian Tataroiu din Noiembrie 30, 2005, 17:16:51 Cristi: Uita-te in Cormen. Ideea e ca daca o retea de sortare sorteaza bine orice secventa formata din 0 si 1 atunci ea sorteaza bine orice secventa de numere.
Vlad: Vrei sa zici ca te-ai prins singur de rezolvare fara sa stii principiul 0-1? :o Titlul: 141 Sortari Scris de: vladut.forum din Noiembrie 30, 2005, 17:40:51 dap, pai dupa ce am facut random asta mi-o fost idea urmatoare cu 0,1 am implementat, da am gresit in implementare si am luat 70 (restu wa).
no serios nu stiam ca exista teorema. eu o foloseam doar ca asa mi se parea mie ca ar tb sa mearga, ca ziceam ca pe mine ma intereseaza doar relatia a > b, (ca sa le interschimb) si am zis ca e indeajuns sa folosesc 0 si 1, ( 1 > 0 ). Azi am aflat dupa cum am zis, ca chestia asta e teorema, funny :)) Titlul: 141 Sortari Scris de: Cosmin Negruseri din Decembrie 10, 2005, 08:29:04 Citat Scrieti un program care determina (pentru mai multe subteste) daca operatiile alese de Ion si Vasile vor sorta crescator orice sir de N numere, indiferent de asezarea lor initiala. Nu e clar daca operatiile pot sau nu pot fi puse in orice ordine ... Titlul: 141 Sortari Scris de: Vlad Berteanu din Ianuarie 04, 2006, 11:52:14 Eu am rezolvat problema luand in ordinea data in fisier operatiile si am luat 0. Ma rog..e posibil sa fi implementat prost...dar cum e pana la urma cu operatiile, care e ordinea ? :?
Titlul: 141 Sortari Scris de: ditzone din Ianuarie 04, 2006, 12:57:31 Cea din fisier !
Titlul: Răspuns: 141 Sortari Scris de: Gabriel Bitis din Aprilie 18, 2007, 12:20:43 :-k .. mi'a luat doar 3 teste.. in rest , incorect... ???
Titlul: Răspuns: 141 Sortari Scris de: Sebastian Crisan din Iulie 23, 2007, 10:20:39 Se poate afla numarul de 0-uri din reprezentarea binara a unui numar, in timp constant? Daca da, cum?
Titlul: Răspuns: 141 Sortari Scris de: Andrei Grigorean din Iulie 23, 2007, 10:24:29 Precalculezi :P.
Daca numarul este pe 32 de biti, nu iti ajunge insa memoria. Trebuie sa precalculezi ptr valorile intre 0 si 1 << 16, si apoi vei face suma a doua valori cand vrei sa afli cate 0-uri contine un numar. Titlul: Răspuns: 141 Sortari Scris de: Sebastian Crisan din Iulie 23, 2007, 18:03:20 Eu am verificat pentru fiecare numar de la 0 la 2n-1 daca bitii lui pot fi sortati. Complexitate O(2n(M+N)). Cand verific daca bitii sunt ordonati imi ia O(N) - verific toti bitii. Cum as putea optimiza? Iau TLE pe ultumul test.
LE: Pentru memorarea celor M operatii foloseam un singur vector (codificam cele 2 valori intr-una singura). Acum folosesc 2 vectori si programul se incadreaza in limita de timp pentru toate testele. Titlul: Răspuns: 141 Sortari Scris de: Andrei Grigorean din Iulie 23, 2007, 18:08:35 Eu am aceeasi complexitate.
Ai grija sa nu faci calcule inutile? Daca ai gasit o configuratie care nu poate fi sortata, dai un break acolo? Titlul: Răspuns: 141 Sortari Scris de: Hasna Robert din Septembrie 04, 2007, 13:39:12 Eu m-am gandit asha:
Am luat cazul extrem in care vectorul este sortat descrescator.Ca acesta sa poata ajunge sortat crescator, asupra lui trebuie sa fie facute cel putin n*(n-1)/2 operatii.Daca se faceau mai putine operatii, afisam 0,daca nu luam un vector de n elemente pe care il initiam c=n-i+1(adik sortat descrescator, cazul extrem), apoi faceam operatiile asupra lui in ordinea in care erau in fisier si apoi verificam daca este sortat.Am luat doar 30 p si pe restu WA. :'( Ma poate ajuta cineva cu un exemplu pe care algoritmul meu sa nu mearga. Imi poate da cineva un material de unde sa aflu mai multe despre aceste retele de sortare. :P Titlul: Răspuns: 141 Sortari Scris de: Ionescu Vlad din Septembrie 04, 2007, 14:02:24 Citat Am luat cazul extrem in care vectorul este sortat descrescator.Ca acesta sa poata ajunge sortat crescator, asupra lui trebuie sa fie facute cel putin n*(n-1)/2 operatii. Nu cred ca-i adevarata chestia asta. De exemplu, sa zicem ca ai: 5 4 3 2 1 Tu zici ca ai nevoie de 5*4/2 adica 10 operatii. Dar nu ai nevoie decat de 2: 1 5 => 1 4 3 2 5 2 4 => 1 2 3 4 5 Tu trebuie sa vezi daca operatiile din fisier sorteaza corect orice sir format din 0 si 1. Asta poti face cu back, pe biti sau cu random. Titlul: Răspuns: 141 Sortari Scris de: Hasna Robert din Septembrie 04, 2007, 14:27:09 Citat Am luat cazul extrem in care vectorul este sortat descrescator.Ca acesta sa poata ajunge sortat crescator, asupra lui trebuie sa fie facute cel putin n*(n-1)/2 operatii. Nu cred ca-i adevarata chestia asta. De exemplu, sa zicem ca ai: 5 4 3 2 1 Tu zici ca ai nevoie de 5*4/2 adica 10 operatii. Dar nu ai nevoie decat de 2: 1 5 => 1 4 3 2 5 2 4 => 1 2 3 4 5 Tu trebuie sa vezi daca operatiile din fisier sorteaza corect orice sir format din 0 si 1. Asta poti face cu back, pe biti sau cu random. Eu ma gandisem ca tre sa verific fiecare cu fiecare si asa am ajuns la chestia aia :P.Mersi pt ajutor. Oricum am mai trim o data sursa fara conditia aia si tot 30 p am luat asa ca o sa incerc pe biti si sa le pregenerez. Titlul: Răspuns: 141 Sortari Scris de: Gabriel Bitis din Septembrie 09, 2007, 12:58:31 mie mi'a iesit cu random.. am generat 10000 de configuratii si am verificat daca dupa operatiile descrise sunt sortate sau nu..
Titlul: Răspuns: 141 Sortari Scris de: Petru Trimbitas din Ianuarie 24, 2011, 17:32:39 Cred ca ar putea fi marita limita de timp la problema asta. Pentru 100 p a trebuit sa-mi precalculez intr-un vector puterile lui 2. :-s
Titlul: Răspuns: 141 Sortari Scris de: Paul-Dan Baltescu din Ianuarie 24, 2011, 18:01:52 Puteai sa le obtii si folosind operatii pe biti (<<, shl).
Titlul: Răspuns: 141 Sortari Scris de: Petru Trimbitas din Ianuarie 24, 2011, 19:14:34 am facut operatii pe biti am pus break-uri am parsat dar nu mi-a intrat nici cum in timp. Te poti uita peste surse :D
Titlul: Răspuns: 141 Sortari Scris de: Pirtoaca George Sebastian din Decembrie 25, 2011, 16:18:18 Eu am generat,pentru fiecare test, toate permutarile de n elemente , iar apoi pe fiecare permutare am vazut daca cele m interschimbari au sortat "permutarile" si imi da TLE. Cum as putea face cu generarea submultimilor , am vazut ca asa este indiciul.
Titlul: Răspuns: 141 Sortari Scris de: Paul-Dan Baltescu din Decembrie 25, 2011, 16:46:42 Se poate demonstra ca o retea de sortare este buna daca sorteaza corect orice multime {0, 1}N. Demonstratia e in Cormen parca.
Titlul: Răspuns: 141 Sortari Scris de: Pirtoaca George Sebastian din Decembrie 26, 2011, 11:21:58 Problema nu intra in O(t*m*n!)?
Titlul: Răspuns: 141 Sortari Scris de: Paul-Dan Baltescu din Decembrie 26, 2011, 11:49:05 N-ar trebui.
Titlul: Răspuns: 141 Sortari Scris de: Pirtoaca George Sebastian din Februarie 14, 2012, 09:51:46 Cu O(2^N * M) iau TLE pe 3 teste. Ce as putea optimiza?
Am rezolvat . Nu era nevoie decat de un break acolo unde trebuie. Titlul: Răspuns: 141 Sortari Scris de: Radu-Andrei Szasz din Octombrie 04, 2012, 14:29:04 Cred ca ar trebui marita limita de timp la problema asta.
Am complexitate O(T * 2 ^ N * M) si iau TLE pe ultimul test. Folosesc operatii pe biti, parsez citirea, dau break la primul sir de biti care nu poate fi sortat, preprocesez puterile lui 2 cum a fost sugerat mai sus si tot nu intru. Titlul: Răspuns: 141 Sortari Scris de: Pirtoaca George Sebastian din Octombrie 04, 2012, 14:33:28 Incearca cu back simplu, nu pe biti. :ok:
Titlul: Răspuns: 141 Sortari Scris de: Radu-Andrei Szasz din Octombrie 04, 2012, 14:57:35 Am luat 100. Mersi mult! :yahoo:
|