Pagini: [1] 2   În jos
  Imprimă  
Ajutor Subiect: 495 Numere 6  (Citit de 11250 ori)
0 Utilizatori şi 1 Vizitator pe acest subiect.
DITzoneC
Nu mai tace
*****

Karma: 301
Deconectat Deconectat

Mesaje: 962



Vezi Profilul
« : August 13, 2007, 22:57:25 »

Aici puteţi discuta despre problema Numere 6.
Memorat
peanutz
Nu mai tace
*****

Karma: 10
Deconectat Deconectat

Mesaje: 296



Vezi Profilul
« Răspunde #1 : August 14, 2007, 19:41:23 »

A luat cineva 100 cu varianta cu dinamica, adica O(a*nrdiv(b))? Vad ca intra solutia oficiala, varianta cu back. Daca la judet s-a luat 100 fara prea mari optimizari, cred ca ar trebui lasat si aici.

btw: e ok sa spunem si pe forum daca stim autorii?
« Ultima modificare: August 14, 2007, 19:43:16 de către Andrei Homorodean » Memorat

....staind....
pauldb
Nu mai tace
*****

Karma: 821
Deconectat Deconectat

Mesaje: 1.901



Vezi Profilul
« Răspunde #2 : August 14, 2007, 19:58:07 »

Sigur, spune-i. Pe infoarena merg ambele variante de 100.
Memorat

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

Karma: 10
Deconectat Deconectat

Mesaje: 296



Vezi Profilul
« Răspunde #3 : August 14, 2007, 20:07:23 »

Am trimis sursa oficiala si nu merge. Nici a mea optimizata nu merge.

La asta e Ilie Vieru, si la cezar e Stelian Ciurea(la cezar sunt 99% sigur).
Memorat

....staind....
cos_min
Nu mai tace
*****

Karma: 48
Deconectat Deconectat

Mesaje: 493


live


Vezi Profilul
« Răspunde #4 : August 14, 2007, 23:05:12 »

Am trimis sursa oficiala si nu merge. Nici a mea optimizata nu merge.

Mie mi'a mers dinamica in O( A*NrDiv(B) ) fara prea mari probleme.  Thumb up
Memorat

vid...
peanutz
Nu mai tace
*****

Karma: 10
Deconectat Deconectat

Mesaje: 296



Vezi Profilul
« Răspunde #5 : August 15, 2007, 00:05:50 »

Da, asa e.. am precalculat o matrice unde gasesc pozitiile divizorilor si a intrat ok. Am impresia ca dura prea mult impartirea.
Memorat

....staind....
c_sebi
Client obisnuit
**

Karma: 24
Deconectat Deconectat

Mesaje: 62



Vezi Profilul
« Răspunde #6 : Octombrie 25, 2007, 20:40:45 »

ce as putea optimiza la solutia dinamica ca sa nu mai primesc TLE? multumesc.
Memorat
pauldb
Nu mai tace
*****

Karma: 821
Deconectat Deconectat

Mesaje: 1.901



Vezi Profilul
« Răspunde #7 : Octombrie 25, 2007, 20:45:24 »

Inlocuieste % cu scadere.
Memorat

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

Karma: 20
Deconectat Deconectat

Mesaje: 216



Vezi Profilul
« Răspunde #8 : Ianuarie 03, 2008, 01:31:10 »

Iau 90 de puncte cu 1 TLE Brick wall

Am optimizat tot ce am putut optimiza. Dinamica are complexitatea de O(A*nrdiv(B)*KONSTANTA )
unde KONSTANTA <= 9(defapt e numarul de divizori a lu B mai mici ca 9). Am pus scaderi in loc de modulo si tot nu merge. Iau TLE pe testul 9.

Ce optimizari as putea sa mai fac ?

Am trimis ca test si solutia oficiala si ia TLE pe acelasi test 9.
Am citit mai sus ce a scris peanutz dar nu prea am inteles. Think

[LATER EDIT] A mers pana la urma de 100.Trebuia sa scap cumva de operatia aia de impartire care manca mult timp.   ( Thanks Cosi )
 
« Ultima modificare: Ianuarie 03, 2008, 16:25:51 de către Tabara Mihai » Memorat
ghitza_2000
Strain


Karma: -7
Deconectat Deconectat

Mesaje: 16



Vezi Profilul
« Răspunde #9 : Martie 28, 2008, 14:56:50 »

eu am trimis o formula si am luat 10 pct pe testul 9:D:D:D
write(g,((a*ct mod 9973)*ct1)mod 9973); unde ct= nr de div al lui b si ct1 = nr de div al lui b <10
*ct = nr de div al lui b-1:D,

[editat de moderator] Nu posta de doua ori consecutiv, de asemenea incearca ca postul sa aibe un sens.
« Ultima modificare: Martie 28, 2008, 16:28:27 de către Airinei Adrian » Memorat
stocarul
Nu mai tace
*****

Karma: 49
Deconectat Deconectat

Mesaje: 203



Vezi Profilul
« Răspunde #10 : Februarie 04, 2009, 15:53:24 »

Ma scoate din pepeni problema asta.... Angry
Cred ca ar trebui marit timpul....

Ce se poate mai performant decat ce am facut eu in codul:...
Adica am precalculat impartirile....in o(nr_div(b)*nr_div_mai_mic_10(b))
iar modulo il fac o data la 1000 de iteratii.....
Totusi primesc TLE pe testu 9....
Cred ca este prea aiurea ca la o problema sa se impuna un timp atat de mic....astfel icnat sa conteze stiu eu ce naiba ar putea conta....

Cod:
//salvam divizorii lui b
for(i=1;i<=k;i++)
if(!(k%i)) //am asit un divizor al lui k
d[++nr]=i; //salvam divizorul :P

//prelucram matricea c[][]...
for(i=1;i<=nr;i++)
for(j=1;j<=nr&&d[j]<=9;j++)
c[i][j]=d[i]/d[j];

//initializam pt a=1
for(i=1;i<=nr&&d[i]<=9;i++)
m[1][d[i]]=1; //pt a=1, exista o singura posibilitate pt divizorii lui b mai mici ca 10

for(i=2;i<=n;i++) //calculam pentru fiecare a in parte
{
for(j=1;j<=nr;j++) //luam pe rand toate produsele care sunt divizibile cu k
{
m[i%2][d[j]]=0; //golim...am ajuns pt prima data pt i-ul asta :P
for(p=1;p<=nr&&d[p]<=9;p++)
if(!(d[j]%d[p])) // al j-lea divizor al lui k, este multiplu al celui de-al p-lea divizor
m[i%2][d[j]]=m[i%2][d[j]]+m[(i-1)%2][c[j][p]]; //la psoibilitatiile gasite pana acum, se adauga si posibilitatile pt al p-lea divizor
}
if(i%1000) //din 1000 in 1000...facem modulo :P....ca sa economism timp :))
for(j=1;j<=nr;j++)
m[i%2][d[j]]%=modulo;
}

//afisem numarul e posibilitati
printf("%d",m[n%2][k]%modulo);
Memorat
Florian
Nu mai tace
*****

Karma: 125
Deconectat Deconectat

Mesaje: 832



Vezi Profilul
« Răspunde #11 : Februarie 04, 2009, 15:58:33 »

Incearca sa faci modulo prin scaderi repetate ( fara sa folosesti "%"), ca e mai rapid.
Memorat
stocarul
Nu mai tace
*****

Karma: 49
Deconectat Deconectat

Mesaje: 203



Vezi Profilul
« Răspunde #12 : Februarie 04, 2009, 16:18:22 »

Incearca sa faci modulo prin scaderi repetate ( fara sa folosesti "%"), ca e mai rapid.
Am trimis si fara sa fac modulo deloc.....(desigur...la multe teste primesc WA)...dar la testul 9 tot nu intra in timp..
Memorat
gabitzish1
Moderatori infoarena
Nu mai tace
*****

Karma: 321
Deconectat Deconectat

Mesaje: 926



Vezi Profilul
« Răspunde #13 : Februarie 04, 2009, 16:23:56 »

Incearca sa faci modulo prin scaderi repetate ( fara sa folosesti "%"), ca e mai rapid.
Asta merge mai rapid decat scaderile repetate:
Cod:
cat = X / MOD;
rez = X - MOD * cat;
Memorat
stocarul
Nu mai tace
*****

Karma: 49
Deconectat Deconectat

Mesaje: 203



Vezi Profilul
« Răspunde #14 : Februarie 06, 2009, 01:07:14 »

Si eu ce fac?...
Am trimis sursa si fara modulo deloc...tot nu intra in timp....
La mine e posibil sa fie din cauza ca folosesc o matrice cu 2 linii....in loc sa folosesc 2 vectori (cred k am ales varianta mai frumoasa)
Insa nu cred ca din cauza asta trebuie sa am problema asta "pe rosu"......
Dupa parerea mea nu aici se face diferentierea dintre 2 surse.......
Inca o data zic....cred ca ar trebui marit timpul pt aceasta problema...
Memorat
devilkind
Echipa infoarena
Nu mai tace
*****

Karma: 284
Deconectat Deconectat

Mesaje: 1.240



Vezi Profilul
« Răspunde #15 : Februarie 06, 2009, 09:37:34 »

Poti rezolva problema in O(B * log A) si intra in timp fara probleme, deci dupa parerea mea limita de timp e buna.
Memorat
zbarni
Strain


Karma: 3
Deconectat Deconectat

Mesaje: 23



Vezi Profilul
« Răspunde #16 : Februarie 14, 2009, 17:45:50 »

Am facut retinand impartirile, scazand sau folosind expresia spusa de gabitzish, am pus short peste tot si tot imi iese din timp Brick wall ... nu pot sa-mi dau seama ce poate fi, desi algoritmul e cam acelasi cu cel oficial. Un alt hint ar fi bineveit Smile Btw, daca tot sunt testele de la judetene, cred ca ar fi fost fair sa intre macar algoritmul oficial Tongue
Memorat
gh09
Strain
*

Karma: -2
Deconectat Deconectat

Mesaje: 38



Vezi Profilul
« Răspunde #17 : Martie 12, 2009, 16:37:44 »

Nu prea are precizie evaluatorul cand spune cata memorie am folosit......am un vector de 9000 si inca unu de 100 de elemente...teoretic ar fi ~40 de kb si mie imi arata ca am folosit 200...cam mare diferenta nu?
Memorat
philip
Strain
*

Karma: 5
Deconectat Deconectat

Mesaje: 39



Vezi Profilul
« Răspunde #18 : Martie 13, 2009, 11:50:47 »

Dati-mi va rog niste teste, si raspunsul la ele, sa imi dau seama unde am gresit  Brick wall.
Pe testele exemplu, pe testele create de mine, si pe 6 din 10 de la evaluare merge bine.
http://infoarena.ro/job_detail/280166
Memorat
gabor_oliviu1991
Nu mai tace
*****

Karma: 28
Deconectat Deconectat

Mesaje: 200



Vezi Profilul
« Răspunde #19 : Martie 13, 2009, 11:59:38 »

iti poti scoate testele oficiale de la OJI http://infoarena.ro/downloads?action=download&file=oji2007.zip&safe_only=false
Memorat
philip
Strain
*

Karma: 5
Deconectat Deconectat

Mesaje: 39



Vezi Profilul
« Răspunde #20 : Martie 13, 2009, 12:40:21 »

Mersi  Ok

L.E. Am facut o mica modificare (round in loc de trunc), dar la testul 7 primesc tot WA, desi pe testul oficial imi da raspunsul corect.
Pe infoarena sunt aceleasi teste?

Inca ceva... daca poate sa verifice cineva care a luat 100 de puncte, ce rezultat ii da pt a=8000, b=8192.
« Ultima modificare: Martie 13, 2009, 12:49:41 de către Philip » Memorat
Pepelea_Flaviu
Client obisnuit
**

Karma: 30
Deconectat Deconectat

Mesaje: 98



Vezi Profilul
« Răspunde #21 : Martie 13, 2009, 17:58:51 »

Mie imi da 8929!
Memorat
APOCALYPTO
Nu mai tace
*****

Karma: 3
Deconectat Deconectat

Mesaje: 250



Vezi Profilul
« Răspunde #22 : Februarie 27, 2010, 18:40:50 »

Imi poate oferi si mie cineva o problema asemanatoare cu explictia rationamentului in urma caruia gasim relatia de recurenta? Very Happy

Multumesc anticipat!
Memorat
Florian
Nu mai tace
*****

Karma: 125
Deconectat Deconectat

Mesaje: 832



Vezi Profilul
« Răspunde #23 : Februarie 27, 2010, 21:02:18 »

tablite , daca imi amintesc bine.
Memorat
APOCALYPTO
Nu mai tace
*****

Karma: 3
Deconectat Deconectat

Mesaje: 250



Vezi Profilul
« Răspunde #24 : Februarie 27, 2010, 22:15:55 »

Ce s-a intamplat cu evaluatorul? Brick wall
Am trimis o sursa pentru 60% din punctaj si iau numai WA desi la mine pe calculator imi dau toate testele corect(pentru a=1000, b=1000 raspunsul este 1293 nu?). Brick wall  
http://infoarena.ro/job_detail/405365
Acasa utilizez codeblocks.
Mentionez ca pentru sursa de 60% am folosit sursa asta: http://infoarena.ro/job_detail/405317 pe care am folosit o matrice intraga in loc de 2 linii si imi depasea memoria. Cu toate astea am luat 20 de puncte la ultima sursa mentionata.
Multumesc anticipat pentru eventualele clarificari!

@Marcu Florian Mersi
Later edit: Am incercat pe testele de la OJI 2007 si pe toate testele in mici(cele 6) imi da raspunsul corect iar pe infoarena inca iau 0.
Later later edit: Bill Gates e de vina!
« Ultima modificare: Februarie 27, 2010, 23:36:08 de către Calin Dragos Ion » Memorat
Pagini: [1] 2   În sus
  Imprimă  
 
Schimbă forumul:  

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