Pagini: 1 [2]   În jos
  Imprimă  
Ajutor Subiect: 016 Joc  (Citit de 21588 ori)
0 Utilizatori şi 1 Vizitator pe acest subiect.
bogdan2412
Echipa infoarena
Nu mai tace
*****

Karma: 410
Deconectat Deconectat

Mesaje: 951



Vezi Profilul
« Răspunde #25 : Octombrie 04, 2005, 17:16:13 »

Eu luam 30 pct pentru ca gresisem initializarea matricei
Memorat
gabitzish1
Moderatori infoarena
Nu mai tace
*****

Karma: 321
Deconectat Deconectat

Mesaje: 926



Vezi Profilul
« Răspunde #26 : August 23, 2007, 22:02:06 »

Citat din mesajul lui: sarabogdan
Ziceti-mi si mie cat da 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 1 6

Nu pricep cum obtine diferenta 3..
Gicu ia 5 (1,6), Nelu 4 (1,4) => dif=1;
Gicu ia 3 (1,3), Nelu 2 (1,1)=> dif=2;
si se termina jocul...

ceea ce e totuna cu: Gicu ia 2(1,1)... si se termina.. e aceasi diferenta.. avand in vedere ca amandoi joaca optim, nu ma prind ce nu am inteles in exemplul respectiv...
Memorat
fireatmyself
Nu mai tace
*****

Karma: 36
Deconectat Deconectat

Mesaje: 492



Vezi Profilul
« Răspunde #27 : August 24, 2007, 13:54:16 »

diferenta 3 se obtine astfel: Gicu ia 5 (1,6), Nelu ia 4 (1,4), Gicu ia 2 (1,1). 5+2-4 = 3
prima linie a matricii este si exemplul dat de mircea, al carui raspuns este tot 3 1 6.

LE: strategia dupa care ai incercat sa rezolvi exemplul de mai sus e greedy. problema se rezolva prin programare dinamica (cel putin asa am rezolvat-o eu)
« Ultima modificare: August 24, 2007, 14:00:43 de către Bogdan A. Stoica » Memorat

Viata e scurta. Daca nu o putem lungi, macar s-o facem lata.
ucc_5
Client obisnuit
**

Karma: -11
Deconectat Deconectat

Mesaje: 82



Vezi Profilul
« Răspunde #28 : Ianuarie 24, 2011, 23:36:21 »

Nu inteleg deloc de ce nu merge testul 8. Algoritmul meu memoreaza in sol[ i ][ j ] - maximul  pana la (i,j) (desigur memorez undeva solutia ca sa fie pe lina si coloana potrivita). sol[ i ][ j ]=max(sol[ i-1 ][ j ],sol[ i ][ j-1 ],a[ i ][ j ]-sol[ i ][ j-1 ],a[ i ][ j ]-sol[ i-1 ][ j ]).
Teoretic ar trebui sa mearga perfect.
Ba chiar arata si greseala din exemplul lui domino (vad ca nu a mentionat nimeni, pentru primul test solutia e 3 2 4 nu 3 2 6).
« Ultima modificare: August 16, 2011, 19:29:25 de către FMI - Paul-Dan Baltescu » Memorat
Mitza444
Client obisnuit
**

Karma: 6
Deconectat Deconectat

Mesaje: 82



Vezi Profilul
« Răspunde #29 : Octombrie 24, 2011, 16:09:22 »

Chiar nu am nici o idee de rezolvare Shocked,ma puteti ajuta cu niste indicatii?? Think
Memorat
SpiderMan
Nu mai tace
*****

Karma: -463
Deconectat Deconectat

Mesaje: 937



Vezi Profilul
« Răspunde #30 : Octombrie 24, 2011, 16:53:48 »

Chiar esti orb ? Pe bune acum, rezolvarea este exact cu un post mai sus, si minune e si corecta  Shocked.
Memorat
ion824
Strain


Karma: 11
Deconectat Deconectat

Mesaje: 17



Vezi Profilul
« Răspunde #31 : Iunie 29, 2012, 22:06:59 »

Cat va da pentru testul respectiv?
1 2
-5 -5
Memorat
SpiderMan
Nu mai tace
*****

Karma: -463
Deconectat Deconectat

Mesaje: 937



Vezi Profilul
« Răspunde #32 : Iunie 29, 2012, 22:43:16 »

Cod:
0 1 2
Memorat
ion824
Strain


Karma: 11
Deconectat Deconectat

Mesaje: 17



Vezi Profilul
« Răspunde #33 : Iunie 30, 2012, 11:39:48 »

Intuieste cineva ce are testul 8 ? Solutia mea e asemanatoare cu cea descrisa de usurelu catalin .
Memorat
thesilverhand13
Strain
*

Karma: 9
Deconectat Deconectat

Mesaje: 32



Vezi Profilul
« Răspunde #34 : Septembrie 19, 2012, 17:26:29 »

 @ Ursuletul Catalin: pentru acel test a lui Domino,raspunsul este chiar 3 2 6  Whistle....
Memorat
swim406
Strain


Karma: 0
Deconectat Deconectat

Mesaje: 9



Vezi Profilul
« Răspunde #35 : Februarie 19, 2013, 13:31:00 »

Cod:
for (i = 1; i <= N; ++i)
for (j = 1; j <= M; ++j)
maxmat[i][j] = best[1][1];

...

Cod:
if (best[i][j] > maxmat[i][j])
for (k = i; k <= N; ++k)
for (l = j; l <= M; ++l)
maxmat[k][l] = best[i][j];

Iau 80 de puncte cu WA pe 6 si 9, si am ajuns la concluzia ca este din cauza maximului. Asta este bucata unde lucrez cu maximul... Nu imi dau seama de greseala nicidecum. Sa fie altceva?
Memorat
new_programmer
Strain


Karma: -1
Deconectat Deconectat

Mesaje: 22



Vezi Profilul
« Răspunde #36 : Mai 27, 2013, 18:42:31 »

Va rog foarte frumos sa mentionati in restrictiile problemei ca diferenta de scor inseamna scor Gicu - scor Nicu. Cuvantul "diferenta" are o alta semnificatie decat cea pe care o are in enunt. Am pierdut foarte mult timp si nu as vrea sa piarda si altii.
Memorat
pauldb
Nu mai tace
*****

Karma: 821
Deconectat Deconectat

Mesaje: 1.901



Vezi Profilul
« Răspunde #37 : Mai 27, 2013, 19:12:18 »

Diferenta: vezi prima definitie, semnificatia 2.
Memorat

Am zis Mr. Green
wefgef
Nu mai tace
*****

Karma: 1049
Deconectat Deconectat

Mesaje: 3.008


razboinicu' luminii


Vezi Profilul
« Răspunde #38 : Mai 27, 2013, 19:32:38 »

Citeste primele doua comentarii din acest topic. Enuntul este destul de clar.
Memorat

omului i-au fost date instinctele pentru a supravietui, nu pentru a fi sclavul lor.
DorelBarbu
Strain
*

Karma: 0
Deconectat Deconectat

Mesaje: 34



Vezi Profilul
« Răspunde #39 : Noiembrie 13, 2014, 21:48:39 »

Va rog, ar putea posta cineva o mica explicatie a relatiei de reucrenta? d[ i][j] = diferenta maximace poate fi obtinuta in dreptunghiul incadrat de pozitia (1,1) si (i,j). Eu asa m-am gandit, dar nu ma prind cum sa continui. Am vazutca intr-adevar, si altii au facut asa. Mi-ar prinde bine un hint. multumesc in avans!
« Ultima modificare: Noiembrie 13, 2014, 23:17:57 de către Mihai Calancea » Memorat
Vlad_lsc2008
Strain


Karma: 0
Deconectat Deconectat

Mesaje: 9



Vezi Profilul
« Răspunde #40 : Aprilie 18, 2016, 22:01:39 »

Ok...nu pot sa trec peste 60 de punte orice as face. Ma poate ajuta cineva?
Memorat
Vlad_lsc2008
Strain


Karma: 0
Deconectat Deconectat

Mesaje: 9



Vezi Profilul
« Răspunde #41 : Aprilie 18, 2016, 22:06:21 »

Nevermind....era o greseala stupida.... Brick wall Brick wall Brick wall
Memorat
mihai.alpha
Strain


Karma: 0
Deconectat Deconectat

Mesaje: 16



Vezi Profilul
« Răspunde #42 : Ianuarie 17, 2017, 00:13:17 »

Problema asta ma dispera. Am facut cu programare dinamica si tot imi da 70 de puncte, cu testele 6, 8, 9 WA. Uitati codul:

Cod:

#include <bits/stdc++.h>

#define Max 1004

FILE *fin, *fout;
int N, M;
int a[Max][Max];
int maxi[Max][Max], sol[Max][Max];

inline int smax(int a, int b)  {
    if(a > b)
        return a;

    return b;
}


int main()  {
    fin = fopen("joc.in", "r");
    fout = fopen("joc.out", "w");

    int s;

    fscanf(fin, "%d%d", &N, &M);

    for(int i = 1;i <= N;i++)
        for(int j = 1;j <= M;j++)
            fscanf(fin, "%d", &a[j]);
    int ri, rj;

    s = a[1][1];
    ri = 1, rj = 1, maxi[1][1] = a[1][1];
    sol[1][1] = a[1][1];
    maxi[1][2] = a[1][1];
    maxi[2][1] = a[1][1];


    for(int i = 1;i <= N;i++)
        for(int j = 1;j <= M;j++)  {
            if(i == 1 && j == 1)
                continue;
            sol[j] = a[j] - maxi[j];
            maxi[j] = smax(maxi[j], sol[j]);
            maxi[j + 1] = maxi[j];
            maxi[i + 1][j] = maxi[j];
            maxi[i + 1][j + 1] = maxi[j];
            if(sol[j] > s)
                s = sol[j], ri = i, rj = j;
        }

    fprintf(fout, "%d %d %d", s, ri, rj);

    fclose(fin);
    fclose(fout);

    return 0;
}

Later edit:

Am luat 100p. Am refacut dinamica si a mers Smile
« Ultima modificare: Ianuarie 17, 2017, 22:23:28 de către mihai craciun » Memorat
FlorinHaja
Strain
*

Karma: -8
Deconectat Deconectat

Mesaje: 29



Vezi Profilul
« Răspunde #43 : Martie 02, 2017, 09:34:53 »

De ce nu e diferența maximă 10? Rețin o matrice smax[2][ i][j] , în care rețin soluția maximă pe care o obțin având ultimul jucător Gicu (pt. rândul 0) sau Nicu (pt. rândul 1). Gicu poate lua jetoanele de valoare 5, 4 și 2, iar Nicu cele de valoare 0 și 1.
Memorat
andrei.arnautu
Client obisnuit
**

Karma: 9
Deconectat Deconectat

Mesaje: 58



Vezi Profilul
« Răspunde #44 : Martie 02, 2017, 10:58:41 »

Citat
Presupunand ca fiecare din cei doi joaca optim

Pe cazul din exemplu se intampla ceea ce este scris la explicatii, mai jos de enunt.

Ideea este ca primul jucator vrea sa maximizeze diferenta, iar cel de-al doilea urmareste sa o minimizeze, asta inseamna ca "amandoi joaca optim". Wink
Memorat
PatrickCplusplus
Strain


Karma: 0
Deconectat Deconectat

Mesaje: 6



Vezi Profilul
« Răspunde #45 : Iulie 21, 2019, 10:00:56 »

Daca am matricea 6 1 2 3 4 7 Gicu alege 7 sau 6 Huh?
Memorat
PatrickCplusplus
Strain


Karma: 0
Deconectat Deconectat

Mesaje: 6



Vezi Profilul
« Răspunde #46 : Iulie 21, 2019, 10:07:08 »

Never mind, am inteles!
Memorat
Pagini: 1 [2]   În sus
  Imprimă  
 
Schimbă forumul:  

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