•Adix
Strain
Karma: -9
Deconectat
Mesaje: 44
|
 |
« Răspunde #75 : Martie 01, 2007, 21:23:30 » |
|
A mea ar solutiona cu succes datele alea de intrare  . O solutioneaza ? .. daca da incearca si asta .. Ar trebui sa iti afiseze 35 dar raspunsul corect e 37.Daca iti da 37 incearca sa faci transpusa matricii asteia si vezi ce rezultat iti da  . Daca tot 37 iti da inseamna ca exemplul meu nu e bun 
|
|
|
Memorat
|
|
|
|
•smith_s9
Strain
Karma: -6
Deconectat
Mesaje: 7
|
 |
« Răspunde #76 : Martie 01, 2007, 21:50:44 » |
|
Ufff... da... da 35. De ce, nu stiu. Oricum, am incercat sa fac pe foaie problema. Uite cum am mers: Flip la a doua linie. Flip la prima coloana. Flip la prima linie. Care da 35. Nu vad cum as putea obtine 37  ...
|
|
|
Memorat
|
|
|
|
•Adix
Strain
Karma: -9
Deconectat
Mesaje: 44
|
 |
« Răspunde #77 : Martie 01, 2007, 22:01:29 » |
|
of scuze .. greseala mea .. vroiam sa zic ca s-ar putea sa iti arate 33 si raspunsul corect e 35 nu eram atent cand am scris postul .. se pare ca nu e exemplul meu bun.. scuze de deranj 
|
|
|
Memorat
|
|
|
|
•smith_s9
Strain
Karma: -6
Deconectat
Mesaje: 7
|
 |
« Răspunde #78 : Martie 01, 2007, 22:22:43 » |
|
Ufff... scuze si eu de deranj, am facut niste greseli si imi dadea 35 din greseala. Totusi erau greseli in flip.in.  Da, imi da 33 si vad acum unde e greseala. Totusi, nu ma las pana nu o rezolv fara backtracking. Scuze din nou, iar am fost neatent, ca de obicei  .
|
|
|
Memorat
|
|
|
|
•Adix
Strain
Karma: -9
Deconectat
Mesaje: 44
|
 |
« Răspunde #79 : Martie 01, 2007, 22:31:47 » |
|
Totusi, nu ma las pana nu o rezolv fara backtracking.  . Daca reusesti de 100 vreau si eu sursa : 
|
|
|
Memorat
|
|
|
|
•IronWing
Strain
Karma: -2
Deconectat
Mesaje: 4
|
 |
« Răspunde #80 : Martie 07, 2007, 19:42:37 » |
|
M-am chinuit ceva timp sa rezolv aceasta problema. O prima idee ar fi sa generezi toate combinatiile in care poti inmulti liniile cu -1 sau 1 ( inmultirea cu 1 se face inmultind de 2 ori cu -1). Apoi, dupa fiecare combinatie generata sa verifici fiecare coloana daca suma sa negativa si daca da sa ii faci flip. O problema ajutatoare ar fi generarea tuturor combinatiilor de 0 si 1 de lungime n. [Editat de moderator: nu mai posta cod asa explicit. Cei care stiu cum se genereaza se descurca sa implementeze singuri. Poti da indicii sau sa explici cum se genereaza daca chiar vrei]
|
|
« Ultima modificare: Martie 08, 2007, 09:26:24 de către Valentin Stanciu »
|
Memorat
|
|
|
|
•razyelx
Client obisnuit

Karma: 0
Deconectat
Mesaje: 82
|
 |
« Răspunde #81 : Aprilie 02, 2007, 20:47:09 » |
|
nu am citit pe aici pre multe postu-ri numa primele.. as vrea sa stiu fara backtracking nu se poate? 
|
|
|
Memorat
|
|
|
|
•Bluedrop_demon
Client obisnuit

Karma: -3
Deconectat
Mesaje: 66
|
 |
« Răspunde #82 : Aprilie 02, 2007, 20:51:20 » |
|
Daca permite evalutaorul marimea sursei, poti face cu precompilare. Generezi toate combinatiile de 1 si 0 de lungime 16 si apoi verifici pentru un n dat. Dar backtracking-ul se comporta exemplar, si te-as sfatui sa nu te complici cand nu e necesar! 
|
|
|
Memorat
|
|
|
|
•razyelx
Client obisnuit

Karma: 0
Deconectat
Mesaje: 82
|
 |
« Răspunde #83 : Aprilie 02, 2007, 21:27:33 » |
|
eu mi-am format un algoritm pe care iau numa 30 de pct. suna cam asa... Fac suma elementele de pe coloane daca e sub 0 inmultesc coloana cu -1 la fel si cu randurile... pt exemplu merge  . smecher nu? as dori sa imi spuneti care e bugg-ul in gandirea mea? adik am eu cateva indei dar... nu sunt sigur..
|
|
|
Memorat
|
|
|
|
•sima_cotizo
|
 |
« Răspunde #84 : Aprilie 02, 2007, 21:35:18 » |
|
Ce faci tu e un greedy... O sa iti zic ce a zis si Greco in alt thread, "nu intreba ce e gresit, mai bine demonstreaza de ce e bine!"... in general greedy-ul buseste... aici din cate imi aduc aminte e un back + o dinamica : o dinamica iti face intotdeauna solutia optima (daca e corecta  ) iar backul verifica toate variantele... in schimb cu greedy speculezi...
|
|
|
Memorat
|
|
|
|
•devilkind
|
 |
« Răspunde #85 : Aprilie 02, 2007, 21:52:01 » |
|
smecher nu? Nu e nimik smcher in ce ai gandit tu  ). Daca te uitai pe posturile anterioare ai fi vazut ca s-au mai gandit mai multi la ideea asta si au trebuit sa renunte ptr ca NU este o solutie corecta. Ce faci u e 100% greedy, si cum a zis si sima cotizo acesta nu este corect. Daca postezi pe forum o demonstratie matematica corecta la greedyu tau eu promit ca iti voi gasi bugul in asa fel incat as iei 100 
|
|
|
Memorat
|
|
|
|
•Omega91
Strain
Karma: 0
Deconectat
Mesaje: 36
|
 |
« Răspunde #86 : Aprilie 19, 2007, 11:54:19 » |
|
eu mi-am format un algoritm pe care iau numa 30 de pct. suna cam asa... Fac suma elementele de pe coloane daca e sub 0 inmultesc coloana cu -1 la fel si cu randurile.
Recunosc, asta este prima rezolvare care mi-a venit in minte. Dar am 2 exemple care nu merg cu metoda asta: 5 -1 5 5 5 5 -1 5 5 5 -1 100 -1 -1 -1 5 -1 5 5 5 5 -1 5 5 5 se comuta linia 3 si coloana 2. -1 10 10 10 -1 10 10 10 100 -1 -1 -1 -1 10 10 10 200 -1 -1 -1 -1 10 10 10 aici sunt liniile 3 si 5 si coloana 1. ma rog, in exemplele astea, toate elementele devin in final pozitive, dar nu-i obligatoriu.
|
|
|
Memorat
|
|
|
|
•C11H17NO3
Strain
Karma: 0
Deconectat
Mesaje: 2
|
 |
« Răspunde #87 : Mai 07, 2007, 22:58:35 » |
|
OK, dupa ceva incercari 30, 70, 90, 100. Nu am facut cu backtracking, desi e clar ca asa ar fi cel mai bine. Am facut un soi de greedy cu perturbari random - deci un algoritm probabilist. Adica, incerc sa maresc maximal suma pe principiile de bun-simt, pe linie si coloana - cand chestia se poate, flip. In caz ca nu se poate mari suma, atunci coafez matricea pseudoaleator de cateva ori si continui cautarea. Cea mai interesanta chestie la solutia mea cred ca este faptul ca merge  . Tehnic vorbind, cred ca este asemanatoare cu random-restart steepest ascent hill-climbing: http://en.wikipedia.org/wiki/Hill_climbing doar ca nu face random-restart, ci random-sidestepping, random-jiggle, sau cam asa ceva. Oricum, traiasca si-nmulteasca(-se) random seed-ul de pe masina de evaluare  . O sa incerc acum si cu backtracking si... mai am o idee  . Alin
|
|
« Ultima modificare: Mai 07, 2007, 23:19:57 de către Mesc Alin »
|
Memorat
|
|
|
|
•wefgef
|
 |
« Răspunde #88 : Mai 08, 2007, 09:32:08 » |
|
Nu este deloc greu sa implementezi un back la problema asta  . Pana atunci, long live ciucuielile!
|
|
|
Memorat
|
omului i-au fost date instinctele pentru a supravietui, nu pentru a fi sclavul lor.
|
|
|
•C11H17NO3
Strain
Karma: 0
Deconectat
Mesaje: 2
|
 |
« Răspunde #89 : Mai 08, 2007, 20:53:55 » |
|
Tocmai, nu e deloc greu cu back  De aia ma gandeam la ceva mai interesant, in masura in care se va putea. Alin
|
|
|
Memorat
|
|
|
|
•c_sebi
Client obisnuit

Karma: 24
Deconectat
Mesaje: 62
|
 |
« Răspunde #90 : Iunie 03, 2007, 16:58:23 » |
|
am o intrebare, desi e offtopic... am facut declaratia long long int SMax=-32000000000;
si la compilare obtin eroarea user.cpp:4: error: integer constant is too large for 'long' type
 ma poate lamuri cineva pls?
|
|
|
Memorat
|
|
|
|
•crawler
|
 |
« Răspunde #91 : Iunie 03, 2007, 17:19:55 » |
|
ai putea sa incerci long long int SMax=-3200000*10000;
|
|
|
Memorat
|
|
|
|
•cos_min
|
 |
« Răspunde #92 : Iunie 03, 2007, 17:20:47 » |
|
Incearca : long long int SMax=-32000000000LL;
|
|
|
Memorat
|
vid...
|
|
|
•c_sebi
Client obisnuit

Karma: 24
Deconectat
Mesaje: 62
|
 |
« Răspunde #93 : Iunie 03, 2007, 17:38:20 » |
|
au mers ambele varinate pe care mi le-ai recomandat... ms de ajutor...  dar poate imi explica cineva care era problema...
|
|
|
Memorat
|
|
|
|
•Florian
|
 |
« Răspunde #94 : Iunie 03, 2007, 17:49:12 » |
|
Problema era ca nu poti atribui direct unei variabile un numar mai mare de 32 biti 
|
|
|
Memorat
|
|
|
|
•DITzoneC
|
 |
« Răspunde #95 : Iunie 03, 2007, 23:55:52 » |
|
Daca nu pui LL la sfarsit compilatorul presupune ca este int dar -32000000000 nu se incadreaza in timpul int. LL la sfarsit semnifica faptul ca este vorba de o constanta long long.
|
|
|
Memorat
|
|
|
|
•frEak-
Strain
Karma: -8
Deconectat
Mesaje: 4
|
 |
« Răspunde #96 : Iulie 03, 2007, 19:52:26 » |
|
O((2^m) * n) ce inseamna O ala ? ;D sa nu mor prost nu de alta  (nu e offtopic ca a montionat cineva chestia asta acu vreo 70 de posturi xD)
|
|
|
Memorat
|
|
|
|
•devilkind
|
 |
« Răspunde #97 : Iulie 03, 2007, 20:35:35 » |
|
Constanta  . acel 2^m*n reprezinta un numar de operatii destul de orientativ.
|
|
|
Memorat
|
|
|
|
•stef2n
|
 |
« Răspunde #98 : Iulie 03, 2007, 20:47:41 » |
|
Constanta?  Notatia O este pentru o functie ce exprima dependenta ordinului de crestere al timpului/memoriei in raport cu variabilele date.
|
|
« Ultima modificare: Iulie 03, 2007, 21:20:39 de către Stefan Istrate »
|
Memorat
|
Exista 10 categorii de oameni: cei care inteleg sistemul binar si cei care nu il inteleg.
|
|
|
•Bogdan_tmm
|
 |
« Răspunde #99 : Ianuarie 06, 2008, 12:38:57 » |
|
Eu nu am incercat prin backtraking.In fine solutia mea nu e foarte reusita dar nu asta ar fi problema cea mai mare.Ci faptul ca in flip.out imi scrie de 3 ori solutia .Ex: dak solutia este 24 in flip.out imi va scrie 242424.Cine stie de ce  (.Si sa nu credeti ca am scris de mai mule ori in fisier.Am o singura --fprintf(g,"%ld",.....); In locul ... este variabila;
|
|
|
Memorat
|
|
|
|
|