spance2life Posted May 23, 2011 Report Posted May 23, 2011 (edited) Asa ca sa nu va plictisiti, am venit cu doua probleme in care este vorba despre matrici. Cerintele spun totul, sa vad in cate moduri se pot rezolva Problema 1 : ImageShack® - Online Photo and Video HostingProblema 2 : ImageShack® - Online Photo and Video Hosting Edited May 23, 2011 by spance2life Quote
Patrunjel Posted May 23, 2011 Report Posted May 23, 2011 (edited) Pentru problema 1 pur si simplu iti faci niste functii sa-ti verifice sus, jos, stanga, dreapta, si la elementele de pe colturi verifici daca poti verifica. Functiile iti returneaza bool (sau int, whatever) si daca e in mijloc elementu' suma numerelor returnate de functii tre sa fie patru, daca e pe colt tre sa fie 2, si daca e lipit de margine tre sa fie 3 (asta ca sa fie usor sa testezi). Treci prin fiecare element, vezi unde e pozitionat, apelezi functiile de mai sus si amin. Daca nu conteaza prea tare timpii de executie ai rezolvat problema foarte simplu.Problema 2 e jalnica. Ciclezi toate elementele de la 1 la n, si tii intr-o variabila numaru-dublura.Daca i<numaru-dublura scrii numaru dublura, daca e mai mare scrii i. Amin. ** Numaru-dublura e numaru ala care se repeta la inceput.(Ideal ar fi ca temele pentru acasa sa le faci tu)Cod problema 2: http://ideone.com/ZQHkK Edited May 23, 2011 by Patrunjel Quote
spance2life Posted May 23, 2011 Author Report Posted May 23, 2011 Lol ce dragut esti, In primul rand la problema numarul 1 are o metoda de rezolvare mult mult mai eficienta, temele acasa sau terminat de mult. Sa vad daca te dute capul la o metoda mult mai eficienta pentru ambele probleme. Quote
Patrunjel Posted May 23, 2011 Report Posted May 23, 2011 La 2 mi-e greu sa cred ca e o solutie mai eficienta, si la 1 ma doare in pula cat de ineficienta e solutia, pentru n=100 ganditu' la o solutie mai eficienta e pierdere de vreme. Quote
spance2life Posted May 23, 2011 Author Report Posted May 23, 2011 Este la 2 este solutia mai eficienta, si la 1 e bataie de cap sa dai de aialalta solutie. Pot observa cineva ceva pe la 1 Quote
Patrunjel Posted May 23, 2011 Report Posted May 23, 2011 Man, da-mi tu exemplu la 2 de solute mai eficienta.Oricum treci prin toate valorile. Quote
em Posted May 23, 2011 Report Posted May 23, 2011 @SpanceO solu?ie O(4*n^2) este dac? te ui?i mereu in jurul fiec?rui numar.Sco?i un O(2*n^2) dac? nu mai verifici numerele din jurul celor deja alese (Le re?ii în doi vectori, un vector<pair> etc). Mai optim de atât nu cred c? se poate. Quote