•bogdan2412
|
 |
« Răspunde #25 : Octombrie 04, 2005, 17:16:13 » |
|
Eu luam 30 pct pentru ca gresisem initializarea matricei
|
|
|
Memorat
|
|
|
|
•gabitzish1
|
 |
« Răspunde #26 : August 23, 2007, 22:02:06 » |
|
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!  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
|
 |
« 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
Mesaje: 82
|
 |
« 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
Mesaje: 82
|
 |
« Răspunde #29 : Octombrie 24, 2011, 16:09:22 » |
|
Chiar nu am nici o idee de rezolvare  ,ma puteti ajuta cu niste indicatii?? 
|
|
|
Memorat
|
|
|
|
•SpiderMan
|
 |
« 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  .
|
|
|
Memorat
|
|
|
|
•ion824
Strain
Karma: 11
Deconectat
Mesaje: 17
|
 |
« Răspunde #31 : Iunie 29, 2012, 22:06:59 » |
|
Cat va da pentru testul respectiv? 1 2 -5 -5
|
|
|
Memorat
|
|
|
|
•SpiderMan
|
 |
« Răspunde #32 : Iunie 29, 2012, 22:43:16 » |
|
|
|
|
Memorat
|
|
|
|
•ion824
Strain
Karma: 11
Deconectat
Mesaje: 17
|
 |
« 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
Mesaje: 32
|
 |
« Răspunde #34 : Septembrie 19, 2012, 17:26:29 » |
|
@ Ursuletul Catalin: pentru acel test a lui Domino,raspunsul este chiar 3 2 6  ....
|
|
|
Memorat
|
|
|
|
•swim406
Strain
Karma: 0
Deconectat
Mesaje: 9
|
 |
« Răspunde #35 : Februarie 19, 2013, 13:31:00 » |
|
for (i = 1; i <= N; ++i) for (j = 1; j <= M; ++j) maxmat[i][j] = best[1][1]; ... 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
Mesaje: 22
|
 |
« 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
|
 |
« Răspunde #37 : Mai 27, 2013, 19:12:18 » |
|
Diferenta: vezi prima definitie, semnificatia 2.
|
|
|
Memorat
|
Am zis 
|
|
|
•wefgef
|
 |
« 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
Mesaje: 34
|
 |
« 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
Mesaje: 9
|
 |
« 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
Mesaje: 9
|
 |
« Răspunde #41 : Aprilie 18, 2016, 22:06:21 » |
|
|
|
|
Memorat
|
|
|
|
•mihai.alpha
Strain
Karma: 0
Deconectat
Mesaje: 16
|
 |
« 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 
|
|
« Ultima modificare: Ianuarie 17, 2017, 22:23:28 de către mihai craciun »
|
Memorat
|
|
|
|
•FlorinHaja
Strain
Karma: -8
Deconectat
Mesaje: 29
|
 |
« 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
Mesaje: 58
|
 |
« Răspunde #44 : Martie 02, 2017, 10:58:41 » |
|
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". 
|
|
|
Memorat
|
|
|
|
•PatrickCplusplus
Strain
Karma: 0
Deconectat
Mesaje: 6
|
 |
« Răspunde #45 : Iulie 21, 2019, 10:00:56 » |
|
Daca am matricea 6 1 2 3 4 7 Gicu alege 7 sau 6  ?
|
|
|
Memorat
|
|
|
|
•PatrickCplusplus
Strain
Karma: 0
Deconectat
Mesaje: 6
|
 |
« Răspunde #46 : Iulie 21, 2019, 10:07:08 » |
|
Never mind, am inteles!
|
|
|
Memorat
|
|
|
|
|