Afişează mesaje
|
Pagini: [1] 2 3
|
3
|
Comunitate - feedback, proiecte si distractie / Blog / Răspuns: Broken counter
|
: August 23, 2012, 00:25:56
|
deci... intrebarea e care e numarul maxim de coliziuni care pot aparea? (coliziune= moment in care doua sau mai multe fire incearca sa incrementeze variabila in aproape acelasi timp; daca asta se intampla variabila va fi incrementata numai de un fir, si anume de primul, sau nu va fi incrementata deloc? );
|
|
|
5
|
infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 105 Base3
|
: Aprilie 30, 2012, 15:26:18
|
buna! m-am tot gandit la problema asta, si as avea cateva idei: 1)daca fixez un sir si un 1 din el, sa spunem ca am x1y (x=nr de cifre din stanga lui 1 pe care l-am fixat, y= acelasi nr din dreapta) daca cele trei siruri date au lungimile a,b,c, atunci noi vrem x+t1*a+u1*b+v1*c=y+t2*a+u2*b+v2*c=min se cere acel min nr natural care se poate scrie sub cele doua forme de mai sus, cu t1,u1,...v2 naturale problema e ca nu stiu cum sa-l aflu si mai trebuie sa sa fixex un sir si un 1 din el 2)prima oara m-am gandit ca sol bruta ar fi cu o parcurgere in latime, dar mi-am dat seama ca nu merge, pt ca lungimile sirurilor nu sunt egale; as putea sa folosesc dijkstra, dar nu mi-e clar care e graful (sursa e sirul vid, dar de unde stiu cate destinatii am, trebuie sa pot sa tin vectorul de distante si nu stiu cum sa numerotez nodurile; la parcurgerea in latime as fi putut sa expandez nodurile pe pparcurs, fara sa stiu graful de la inceput);
mi-ar putea da cineva un hint de cum sa folosesc dijkstra aici? macar sa stiu cam la ce complexitate ar trebui sa ajung, ca sa stiu daca pot sa folosesc ideea cu fixatul unui 1
|
|
|
7
|
infoarena - concursuri, probleme, evaluator, articole / Arhiva Infoarena Monthly / Răspuns: 000 Paranteze2
|
: Martie 03, 2012, 16:48:01
|
eu nu inteleg o chestie legata de memorie: am la dispozitie 16384kB=16384*1024B eu folosesc 3 vectori de int-uri si unul de char-uri: 16384*1024>1000000(3*4+1) . totusi mie imi da segmentation fault (pe calculatorul meu la fel: cand definesc nmax=1000 sau ceva mic, merge). are cineva vreo idee de la ce poate fi? nu cred ca algoritmul e de vina, l-am comentat si am lasat doar declaratiile, si tot nu merge
|
|
|
12
|
infoarena - concursuri, probleme, evaluator, articole / Teme / AVL-uri
|
: Ianuarie 12, 2012, 20:20:47
|
Vreau sa invat AVL-uri, dar nu am vazut problema in arhiva educationala . stie cineva probleme foarte simple de pe infoarena care sa se rezolve folosind avl-uri (foarte simple adica sa aplic cat mai direct teoria, fara alte smecherii/observatii)?
|
|
|
14
|
infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 074 Heroes of Might & Magic
|
: Decembrie 17, 2011, 19:34:49
|
numerele alea din matrice, cele diferite de zero, cat de mari/mici pot fi ("intregii" din cerinta inseamna ca sunt int-uri?). si inca o intrebare, conteaza la ceva ce valoare are o casuta, atata timp cat ea e diferita de 0? daca nu, de ce sa nu spunem pur si simplu ca e o matrice cu 0 si 1?
|
|
|
16
|
infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 184 Mult
|
: Decembrie 16, 2011, 08:54:38
|
nu cred ca am inteles bine cerinta "singura operatie permisa este stergerea unei cifre pentru ca cei doi copii sa se impace." de fapt, din exemplu, pot sa sterg oricate, si din subsirul care ramane scris, fac un numar. daca e div cu k, il numar. eu am facut cu dinamica, asa: (dp[ i ][j]=numarul de numere care restul j la impertirea cu k, considerand doar primele i cifre=> raspunsul va fi, la final, in dp[n][0]) //initializarea/ v[] e sirul initial de cifre... for(i=1;i<=n;i++)dp[i][v[i]%k]=1;//cifra asta pot sa iau si singura, neimperecheata cu nimic din fata
for(i=1;i<n;i++){ for(j=0;j<k;j++){ dp[i+1][j]+=dp [ i ] [j]; dp[i+1][(j*10+v[i+1])%k]+=dp [ i ] [j];//daca consider a (i+1)-a cifra } }
dar iau doar 10 puncte cu incorect pe restul cerinta s-a schimbat semnficativ in ultimul timp? va ca se vorbeste de numere mari; in plus, sunt multe surse de 100p care au un timp de aproape 2secunde
|
|
|
17
|
infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 1208 Ferma2
|
: Noiembrie 22, 2011, 06:54:52
|
Salut! Eu am facut problema asta in doua moduri (facut adica da raspunsul corect, dar ia tle pe 7 teste din 10, in ambele moduri) Am notat cu l1 numarul de laturi de tip 1 vandute pana acum (catete verticale), l2 numarul de laturi de tip 2 (catete orizontale) si l3 numarul de laturi de tip trei (ipotenuze) Primul e brut: fac doua foruri in care fixez l1 si l2 (l3 se deduce, este k-l1-l2). am trei functii: suma1(l1,l2,l3), suma2(l1,l2,l3) si suma3(l1,l2,l3) care calc. valoare parcelei de tip 1 (respectiv 2, 3), stiind ca am vandut deja l2 si l3 laturi de tipul l2 si resp l3; sursa e aici http://infoarena.ro/job_detail/636657?action=view-sourceA doua solutie am incercat sa o fac o parcurgere in latime; mie mi s-a parut o solutie mai buna ca prima, dar, desi tot doar trei teste intra in timp, ea ia chiar mai mult initial am in coada nodul (0,0,0,0) cu semnif ca la sf zilei 0, am vandut 0 laturi l1, 0 laturi l2 si castigul este 0 (pe l3 nu e nevoie sa-l tin, se deduce, este (ziua-l-l2)) expandarea nodului (ziua,l1,l2,castig) duce la adaugarea in coada a inca trei noduri: (ziua+1,l1,l2,castig+suma3(l1,l2,ziua-l1-l2+1)) daca vand latura 3, (ziua+1,l1+1,l2,castig+suma1(l1+1,l2,ziua-l1-l2)) daca vand latura 1, (ziua+1,l1,l2+1,castig+suma2(l1,l2+1,ziua-l1-l2)) daca vand latura 2. expandez pana la generatia k, inclusiv. din tot ce am pus vreodata in coada aleg maximul, dpdv al castigului. mi s-a parut o sol mai buna ca prima, pt ca chem functiile de suma de mai putine ori decat in primul caz... sursa e aici: http://infoarena.ro/job_detail/637095?action=view-sourceImi poate spune cineva, pe scrut, care era ideea? sumele pe bucati oricum trebuiesc calculate,nu? si ele iau mult timp...
|
|
|
24
|
infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 948 Perle2
|
: Noiembrie 11, 2011, 21:38:14
|
are cineva vreo idee ce e cu testul 9? ca iau tle pe ea, am incercat sa citesc intr-un buffer numerele si dupa aia sa parsez, dar merge chiar si mai incet. in general, am incercat cam tot ce mi-a trecut prin cap sa mearga mai rapid, dar tot tle iau.... asta e ceea ce fac: int x=n-1; for(i=0;i<x;i++){ if(diag[i]>0){ //sunt pe linia i din "matrice" coloana[i]=diag[i]; if(coloana[i]>max){max=coloana[i];} for(j=i+1;j<n;j++){ coloana[j]=coloana[j-1]+diag[j]; if(coloana[j]<=0)break; if(coloana[j]>max){ max=coloana[j]; } } } } datele le citesc cu stream-uri, in varianta care am vazut ca e cea mai rapida: http://infoarena.ro/job_detail/631145
|
|
|
|