•fluffy
|
 |
« : Martie 08, 2004, 20:03:29 » |
|
Aici puteţi discuta despre problema Joc.
|
|
|
Memorat
|
|
|
|
•fluffy
|
 |
« Răspunde #1 : Aprilie 01, 2004, 03:01:55 » |
|
Uite ca am si eu o nelamurire la aceasta problema. Prin "diferenta de scor" se intelege cumva modul? In cazul in care se intelege modul, problema a devenit brust MULT mai grea, sincer eu nu am nici o idee.
|
|
|
Memorat
|
|
|
|
•domino
|
 |
« Răspunde #2 : Aprilie 01, 2004, 09:38:54 » |
|
Diferenta de scor inseamna "Scor Gicu - Scor Nicu"
|
|
|
Memorat
|
|
|
|
•fluffy
|
 |
« Răspunde #3 : Aprilie 01, 2004, 13:02:25 » |
|
Ar trebui sa pui asta in enunt. Really.
|
|
|
Memorat
|
|
|
|
•druid
Strain
Karma: 1
Deconectat
Mesaje: 27
|
 |
« Răspunde #4 : Ianuarie 31, 2005, 23:30:42 » |
|
Am facut o solutie O(N*M) cu programare dinamica... si nu stiu ce are, ca iau doar 30 de puncte... si rationamentul meu pare infailibil Am o matrice de BEST de NxM , A e aia citita din fisier... in principiu e ceva de genu best [j]=a[j]-MAX(best[i-1][j],best[j-1])... si asta in 2 for-uri, mai intai unu pt linii si apoi pt coloane... ce gresesc? :cry:
Se ofera careva care a facut-o sa se uite pe sursa mea? Merg doar cazurile 6, 8, 9... restul wrong answer.
Daca se ofera careva voluntar sa se uite pe sursa mea, sa-mi lase mailu pe private or smth... multumesc anticipat. 
|
|
|
Memorat
|
|
|
|
•sarabogdan
Strain
Karma: 4
Deconectat
Mesaje: 40
|
 |
« Răspunde #5 : Martie 17, 2005, 17:15:08 » |
|
Ziceti-mi si mie cat da pe : 5 7 1 1 -3 1 3 1 2 2 1 3 4 0 5 3 3 -1 -2 0 4 -1 4 2 3 4 5 6 2 3 3 1 2 1 2 1 2 si pe : 4 6 2 1 3 4 0 5 3 -1 -2 0 4 -1 -1 -2 -3 -4 -5 -6 1 2 3 4 5 6 poate ma prind ce-am gresit. Multumesc anticipat! 
|
|
|
Memorat
|
|
|
|
•domino
|
 |
« Răspunde #6 : Martie 17, 2005, 17:30:50 » |
|
Ziceti-mi si mie cat da pe : 5 7 1 1 -3 1 3 1 2 2 1 3 4 0 5 3 3 -1 -2 0 4 -1 4 2 3 4 5 6 2 3 3 1 2 1 2 1 2 si pe : 4 6 2 1 3 4 0 5 3 -1 -2 0 4 -1 -1 -2 -3 -4 -5 -6 1 2 3 4 5 6 poate ma prind ce-am gresit. Multumesc anticipat!  3 2 6 si 3 1 6
|
|
|
Memorat
|
|
|
|
•sarabogdan
Strain
Karma: 4
Deconectat
Mesaje: 40
|
 |
« Răspunde #7 : Martie 17, 2005, 17:35:39 » |
|
10X domino!
|
|
|
Memorat
|
|
|
|
•dobre
|
 |
« Răspunde #8 : Martie 22, 2005, 12:33:55 » |
|
Buna  , toate testele care le-am dat la joc mie mi-au iesit corect... Iar la evaluare am 1..9 gresit si 10 time limit exceeded. Am o solutie inspirata de la Druid... Am o matrice Sol,A,Max in Sol memorez solutia , A este matricea din fisier iar in Max retin valoarea maxima din Sol din dreptunghiul (1,1) si (i,j)... sol[i,j]:=a[i,j]-max[i,j]. Si cam atat ar fi in mare... NU cred ca ideea mea de rezolvare ii gresita , ci poate am ceva gresit in implementare Daca ai putea pls sa-mi dai un test mai mic sa vad unde naiba gresesc !  .
|
|
|
Memorat
|
|
|
|
•dobre
|
 |
« Răspunde #9 : Martie 24, 2005, 10:34:55 » |
|
NU imi dau seama nicicum unde gresesc daca se poate uita cineva peste sursa mea... NU o sa mai postesz si partea de citire si afisare... function maxim(a,b:integer):integer; begin maxim:=(a+b+abs(a-b)) div 2; end; procedure calcul; begin fillchar(sol,sizeof(sol),0); Vmax:=-1000;i:=1;j:=1; for i:=1 to n do for j:=1 to m do begin sol[i,j]:=a[i,j]-max[i,j]; max[i,j]:=maxim(max[i,j],sol[i,j]); max[i,j+1]:=max[i,j]; max[i+1,j]:=max[i,j]; if Vmax<sol[i,j] then begin Vmax:=sol[i,j]; si:=i;sj:=j; end; end; end; Chiar nu pot sa-mi dau seama unde gresesc...Eventual daca cineva imi gaseste un test in care programul meu greseste(eu n-am reusit sa gasesc) Multumesc anticipat
|
|
|
Memorat
|
|
|
|
•dobre
|
 |
« Răspunde #10 : Martie 25, 2005, 12:07:31 » |
|
Gata am gasit care e problema... NU ii corecta partea cu max...Am facut-o altfel , ii mai lenta , iau 60 de puncte pe ea, ultimele teste time limit exceeded.
|
|
|
Memorat
|
|
|
|
•Matrix
Strain
Karma: -3
Deconectat
Mesaje: 41
|
 |
« Răspunde #11 : Martie 25, 2005, 12:29:07 » |
|
incerca sa nu mai folosesti functii cum ar fi abs, mai bine implementeazo singur , pt ca mananca timp, asa am patit eu pe .campion cu functia sqrt, (TLE)
|
|
|
Memorat
|
|
|
|
•dobre
|
 |
« Răspunde #12 : Martie 25, 2005, 16:37:11 » |
|
Nu stiam ca abs ar manca mult timp. Dar cum spui tu sa o implementez cu IF ? Nu ii mai lenta asa !? Thx pentru observatie 
|
|
|
Memorat
|
|
|
|
•bogdan2412
|
 |
« Răspunde #13 : Aprilie 29, 2005, 13:00:46 » |
|
Imi poate da cineva un contraexemplu pentru algortimul dat de druid? Mie mi se pare corect, dar totusi iau doar 30 puncte pe el
|
|
|
Memorat
|
|
|
|
•Cosmin
|
 |
« Răspunde #14 : Aprilie 29, 2005, 14:14:27 » |
|
Ai grija ca trebuie sa iei maximul din dreptunghiul lui (1,1) (i,j) dar sa nu incluzi si pe sol[j] deci mai bine iei maximul din (1,1) (i-1,j) si maximul din (1,1) (i,j-1)
|
|
|
Memorat
|
|
|
|
•bogdan2412
|
 |
« Răspunde #15 : Aprilie 29, 2005, 15:13:54 » |
|
Poti sa-mi explici ce ai vrut sa zici, ca n-am reusit sa inteleg. Scuze... 
|
|
|
Memorat
|
|
|
|
•Cosmin
|
 |
« Răspunde #16 : Aprilie 29, 2005, 15:39:08 » |
|
Am vazut aiurea ceva in postul anterior, dar nu stiu ce face in codul asta: max[i,j+1]:=max[i,j]; max[i+1,j]:=max[i,j]; Nu ar trebui sa faca un if cand actualizeaza max[i,j+1] si max[i+1,j]?
|
|
|
Memorat
|
|
|
|
•dobre
|
 |
« Răspunde #17 : Aprilie 29, 2005, 15:42:16 » |
|
pe solutia urmatoare... for i:=1 to n do for j:=1 to m do begin sol[i,j]:=a[i,j]-max[i,j]; max[i,j]:=maxim(max[i,j],sol[i,j]); max[i,j+1]:=maxim(max[i,j],max[i,j+1]); max[i+1,j]:=maxim(max[i,j],max[i+1,j]); if Vmax<sol[i,j] then begin Vmax:=sol[i,j]; si:=i;sj:=j; end; end;
Iau 30 p... Daca , calculez max babeste si nu iau punctul [i,j] iau 60p ,ultimele 4 teste nu se incadreaza in timp... Pentru solutia de 30 p nu determina totdeauna max corect dar nu stiu de ce...  Edit: Cosmin: probabil ca te refereai la mine... Ce am scris eu acolo era o prostie , luam 0 p pe ea... :lol:
|
|
|
Memorat
|
|
|
|
•Cosmin
|
 |
« Răspunde #18 : Aprilie 29, 2005, 19:33:12 » |
|
Bah ti-am zis si dincolo sa folosesti "[code]" ca nu se intelege nimic.
|
|
|
Memorat
|
|
|
|
•dobre
|
 |
« Răspunde #19 : Aprilie 29, 2005, 23:34:15 » |
|
Ii ok acuma!? 
|
|
|
Memorat
|
|
|
|
•Cosmin
|
 |
« Răspunde #20 : Aprilie 30, 2005, 00:14:45 » |
|
Da, super! 
|
|
|
Memorat
|
|
|
|
u-92
Vizitator
|
 |
« Răspunde #21 : Iulie 19, 2005, 19:20:01 » |
|
totusi.. eu nu sunt lamurit deloc.. care e pana la urma greseala in algoritmul prezentat mai sus de druid.. poate cineva care sa-mi dea vreo indicatie?
multumesc.
|
|
|
Memorat
|
|
|
|
•dobre
|
 |
« Răspunde #22 : Iulie 19, 2005, 20:13:18 » |
|
Incearca sa dai niste teste cu valori negative, eu acolo am avut greseala si dupa ce am sesizat-o am luat 100 p. Hope it help's ...
|
|
|
Memorat
|
|
|
|
u-92
Vizitator
|
 |
« Răspunde #23 : Iulie 21, 2005, 17:47:02 » |
|
da.. aici era greseala. mersi
|
|
|
Memorat
|
|
|
|
•Dorin
Client obisnuit

Karma: 7
Deconectat
Mesaje: 73
|
 |
« Răspunde #24 : Octombrie 04, 2005, 16:01:29 » |
|
pentru a calcula maximul folosesc urmatoarea secventa: max = -32001; if(b[i-1][j] > max) max = b[i-1][j];
if(b[i][j-1] > max) max = b[i][j-1];
if(c[i-1][j] > max) max = c[i-1][j];
if(c[i][j-1] > max) max = c[i][j-1];
b[i][j] = max;
imi poate spune cineva ce am gresit pentru ca iau numai 30 de puncte restul WA
|
|
|
Memorat
|
Smile !  ... tomorow will be worse
|
|
|
|