Pagini: [1] 2   În jos
  Imprimă  
Ajutor Subiect: 016 Joc  (Citit de 21603 ori)
0 Utilizatori şi 1 Vizitator pe acest subiect.
fluffy
Echipa infoarena
De-al casei
*****

Karma: 71
Deconectat Deconectat

Mesaje: 146



Vezi Profilul
« : Martie 08, 2004, 20:03:29 »

Aici puteţi discuta despre problema Joc.
Memorat
fluffy
Echipa infoarena
De-al casei
*****

Karma: 71
Deconectat Deconectat

Mesaje: 146



Vezi Profilul
« 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
Echipa infoarena
Nu mai tace
*****

Karma: 281
Deconectat Deconectat

Mesaje: 1.340



Vezi Profilul WWW
« Răspunde #2 : Aprilie 01, 2004, 09:38:54 »

Diferenta de scor inseamna "Scor Gicu - Scor Nicu"
Memorat
fluffy
Echipa infoarena
De-al casei
*****

Karma: 71
Deconectat Deconectat

Mesaje: 146



Vezi Profilul
« Răspunde #3 : Aprilie 01, 2004, 13:02:25 »

Ar trebui sa pui asta in enunt. Really.
Memorat
druid
Strain
*

Karma: 1
Deconectat Deconectat

Mesaje: 27



Vezi Profilul
« 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  Very Happy
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.  Very Happy
Memorat
sarabogdan
Strain
*

Karma: 4
Deconectat Deconectat

Mesaje: 40



Vezi Profilul
« 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! Brick wall
Memorat
domino
Echipa infoarena
Nu mai tace
*****

Karma: 281
Deconectat Deconectat

Mesaje: 1.340



Vezi Profilul WWW
« Răspunde #6 : Martie 17, 2005, 17:30:50 »

Citat din mesajul lui: sarabogdan
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! Brick wall


3 2 6 si 3 1 6
Memorat
sarabogdan
Strain
*

Karma: 4
Deconectat Deconectat

Mesaje: 40



Vezi Profilul
« Răspunde #7 : Martie 17, 2005, 17:35:39 »

10X domino!
Memorat
dobre
De-al casei
***

Karma: 2
Deconectat Deconectat

Mesaje: 116



Vezi Profilul
« Răspunde #8 : Martie 22, 2005, 12:33:55 »

Buna Very Happy , 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 !
d'oh!.
Memorat
dobre
De-al casei
***

Karma: 2
Deconectat Deconectat

Mesaje: 116



Vezi Profilul
« Răspunde #9 : Martie 24, 2005, 10:34:55 »

NU imi dau seama nicicum unde gresesc  Sad
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
De-al casei
***

Karma: 2
Deconectat Deconectat

Mesaje: 116



Vezi Profilul
« Răspunde #10 : Martie 25, 2005, 12:07:31 »

Gata am gasit care e problema...  Very Happy
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 Deconectat

Mesaje: 41



Vezi Profilul
« 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
De-al casei
***

Karma: 2
Deconectat Deconectat

Mesaje: 116



Vezi Profilul
« 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 Tongue
Memorat
bogdan2412
Echipa infoarena
Nu mai tace
*****

Karma: 410
Deconectat Deconectat

Mesaje: 951



Vezi Profilul
« 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
Echipa infoarena
Nu mai tace
*****

Karma: 351
Deconectat Deconectat

Mesaje: 1.799



Vezi Profilul
« 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
Echipa infoarena
Nu mai tace
*****

Karma: 410
Deconectat Deconectat

Mesaje: 951



Vezi Profilul
« 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... Eh?
Memorat
Cosmin
Echipa infoarena
Nu mai tace
*****

Karma: 351
Deconectat Deconectat

Mesaje: 1.799



Vezi Profilul
« 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
De-al casei
***

Karma: 2
Deconectat Deconectat

Mesaje: 116



Vezi Profilul
« Răspunde #17 : Aprilie 29, 2005, 15:42:16 »

pe solutia urmatoare...
Cod:

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...  Neutral

Edit:

Cosmin: probabil ca te refereai la mine...
Ce am scris eu acolo era o prostie , luam 0 p pe ea... :lol:
Memorat
Cosmin
Echipa infoarena
Nu mai tace
*****

Karma: 351
Deconectat Deconectat

Mesaje: 1.799



Vezi Profilul
« 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
De-al casei
***

Karma: 2
Deconectat Deconectat

Mesaje: 116



Vezi Profilul
« Răspunde #19 : Aprilie 29, 2005, 23:34:15 »

Ii ok acuma!?  wink
Memorat
Cosmin
Echipa infoarena
Nu mai tace
*****

Karma: 351
Deconectat Deconectat

Mesaje: 1.799



Vezi Profilul
« Răspunde #20 : Aprilie 30, 2005, 00:14:45 »

Da, super! Smile
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
De-al casei
***

Karma: 2
Deconectat Deconectat

Mesaje: 116



Vezi Profilul
« 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 Deconectat

Mesaje: 73



Vezi Profilul
« Răspunde #24 : Octombrie 04, 2005, 16:01:29 »

pentru a calcula maximul folosesc urmatoarea secventa:
Cod:

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 ! Smile ... tomorow will be worse
Pagini: [1] 2   În sus
  Imprimă  
 
Schimbă forumul:  

Powered by SMF 1.1.19 | SMF © 2006-2013, Simple Machines