Pagini: [1]   În jos
  Imprimă  
Ajutor Subiect: 184 Mult  (Citit de 8008 ori)
0 Utilizatori şi 1 Vizitator pe acest subiect.
domino
Echipa infoarena
Nu mai tace
*****

Karma: 281
Deconectat Deconectat

Mesaje: 1.340



Vezi Profilul WWW
« : Martie 02, 2006, 01:19:56 »

Aici puteţi discuta despre problema Mult.
Memorat
sims_gl
Client obisnuit
**

Karma: 35
Deconectat Deconectat

Mesaje: 53



Vezi Profilul
« Răspunde #1 : Martie 03, 2006, 10:00:07 »

Pentru exemplul:
2 7
7 7
raspunsul ar trebui sa fie 3 nu?
Adica cele doua moduri de a obtine 7 se numara separat nu?
Memorat

"I want to know god's thoughts... the rest are details." Einstein
ditzone
Vizitator
« Răspunde #2 : Martie 03, 2006, 12:33:14 »

Da raspunsul e 3... Zice clar in enunt
Citat

Aflati numarul de posibilitati de a obtine un multiplu a lui K din numarul initial daca singura operatie permisa este stergerea unei cifre pentru ca cei doi copii sa se impace.
Memorat
cyron
Strain
*

Karma: 2
Deconectat Deconectat

Mesaje: 43



Vezi Profilul
« Răspunde #3 : Martie 05, 2006, 11:48:38 »

cam ce complexitate ar trebui ? Sad
Memorat
u-92
Vizitator
« Răspunde #4 : Martie 05, 2006, 13:49:36 »

am scos N*K*c ... c o constanta suficient de mica sa intre in timp Tongue
Memorat
pauldb
Nu mai tace
*****

Karma: 821
Deconectat Deconectat

Mesaje: 1.901



Vezi Profilul
« Răspunde #5 : Iunie 10, 2006, 14:35:55 »

Constanta aia c vine de la numere mari nu?  Think

Cum ai redus-o? Eu folosesc baza 10^9 si iau doar 30 de puncte... sad
Memorat

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

Karma: 232
Deconectat Deconectat

Mesaje: 929



Vezi Profilul
« Răspunde #6 : Iunie 10, 2006, 15:09:16 »

Nu e constanta de vina, eu am baza 10^8 si mi-a intrat destul de lejer. Ai grija la complexitatea dinamicii, toata faza e sa faci dinamica inainte si nu inapoi.
Memorat
crawler
Vorbaret
****

Karma: 105
Deconectat Deconectat

Mesaje: 161



Vezi Profilul
« Răspunde #7 : Iunie 15, 2007, 20:44:26 »

enuntul are o mica greseala  Smile
Cod:
... nici o cifran din el ...
Memorat
DITzoneC
Nu mai tace
*****

Karma: 301
Deconectat Deconectat

Mesaje: 962



Vezi Profilul
« Răspunde #8 : Iunie 16, 2007, 22:48:44 »

S-a corectat.
Memorat
CezarMocan
Nu mai tace
*****

Karma: 252
Deconectat Deconectat

Mesaje: 567



Vezi Profilul
« Răspunde #9 : Ianuarie 17, 2008, 11:59:31 »

Imi dati si mie ceva idei de optimizare? Fac cu dinamica, in complexitate N*K, pastrez doar ultimele 2 linii ale matricii, la numerele mari folosesc baza 10^8, fac cu scaderi in loc de modulo si iau doar 75 de puncte...  Fighting
Memorat
wefgef
Nu mai tace
*****

Karma: 1049
Deconectat Deconectat

Mesaje: 3.008


razboinicu' luminii


Vezi Profilul
« Răspunde #10 : Ianuarie 17, 2008, 12:20:39 »

1. Lucreaza cu baza 10^9
2. Tu la fiecare pas initializezi x cu 0, iar la sfarsit ai y := x. Lucreaza cu o matrice de 2 * Kmax * BigInt, ca sa eviti copierea asta.
3. Declara matricile cu dimensiuni puteri ale lui 2.
4. Nu mai scrie in Pascal. Chiar, de ce nu ai trecut dupa JBOI pe C++?
« Ultima modificare: Ianuarie 17, 2008, 12:23:25 de către Andrei Grigorean » Memorat

omului i-au fost date instinctele pentru a supravietui, nu pentru a fi sclavul lor.
CezarMocan
Nu mai tace
*****

Karma: 252
Deconectat Deconectat

Mesaje: 567



Vezi Profilul
« Răspunde #11 : Ianuarie 17, 2008, 13:00:08 »

Pai unele le scriu in C... depinde de dispozitie...uneori scriu in C, alteori in Pascal... asta am scris-o in Pascal ca in C nu am implementate operatii pe numere mari cu baza mare  Embarassed. Tot nu reusesc sa iau 100, doar 85. Cu ce ma ajuta daca declar la matrici puteri ale lui 2??
Memorat
gogu
Client obisnuit
**

Karma: 42
Deconectat Deconectat

Mesaje: 98



Vezi Profilul
« Răspunde #12 : Ianuarie 17, 2008, 14:12:34 »

Cum ai facut initial ar fi trebuit sa merga de 100 de puncte lejer. Trebuie sa te uiti si la warning-uri:  Smile
"user.fpc(15,9) Warning: Mixing signed expressions and longwords gives a 64bit result"

Atunci cand amesteci intregi cu semn si intregi fara semn ai nevoie de intregi cu semn pe 64 de biti ca sa retii rezultatul, daca iti poate da overflow, si cateodata compilatorul iti face asta automat.

Incearca sa lucrezi numai cu longword si cred ca nu ar trebui sa ai problema asta.
Memorat
wefgef
Nu mai tace
*****

Karma: 1049
Deconectat Deconectat

Mesaje: 3.008


razboinicu' luminii


Vezi Profilul
« Răspunde #13 : Ianuarie 17, 2008, 14:22:50 »

Invata STL. O sa te ajute mult.
Memorat

omului i-au fost date instinctele pentru a supravietui, nu pentru a fi sclavul lor.
CezarMocan
Nu mai tace
*****

Karma: 252
Deconectat Deconectat

Mesaje: 567



Vezi Profilul
« Răspunde #14 : Ianuarie 17, 2008, 18:25:20 »

Multumesc mult Gogu si Wefgef... am reusit sa iau 100  Yahoo!
Memorat
wefgef
Nu mai tace
*****

Karma: 1049
Deconectat Deconectat

Mesaje: 3.008


razboinicu' luminii


Vezi Profilul
« Răspunde #15 : Ianuarie 17, 2008, 18:33:32 »

Cu ce ma ajuta daca declar la matrici puteri ale lui 2??

Pai sa zicem ca tu vrei sa accesezi A[ i ][ j ]. Matricele se aloca liniar, deci elementul care te intereseaza este de fapt al (i-1)*M+j-lea de la adresa de unde s-a alocat A[0][0] - primul element. Daca M este putere de 2, atunci operatia (i-1)*M este de fapt o shiftare si ia semnificativ mai putin timp de calculat.

S-ar putea sa mai fie o explicatie legata de cum foloseste un calculator memorie.. nu stiu Smile.

Vezi ca uneori daca declari prea multa memorie, iti merge mai incet programul. Se pare ca asa e in cazul de fata Smile.

L. E.: Mai Cezarel, cum te chinuiai tu degeaba. Pai de ce scoti tu operatia mod, daca o lasi pe aia de div? Ca sunt la fel de proaste. Am scos instructiunea
Cod:
t := aux div baza;
din procedura aduna si uite ce timpi am obtinut: http://infoarena.ro/job_detail/123929. Rapid nu? (si e sursa ta Tongue)
« Ultima modificare: Ianuarie 17, 2008, 19:04:20 de către Andrei Grigorean » Memorat

omului i-au fost date instinctele pentru a supravietui, nu pentru a fi sclavul lor.
blue_phoenix
Client obisnuit
**

Karma: 0
Deconectat Deconectat

Mesaje: 57



Vezi Profilul
« Răspunde #16 : 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...
Cod:
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
« Ultima modificare: Decembrie 16, 2011, 09:46:55 de către FMI - Paul-Dan Baltescu » Memorat
pauldb
Nu mai tace
*****

Karma: 821
Deconectat Deconectat

Mesaje: 1.901



Vezi Profilul
« Răspunde #17 : Decembrie 16, 2011, 09:46:02 »

Problema e ca rezultatul poate sa fie pana la 2N si trebuie folosite "numere mari" in dinamica.
Memorat

Am zis Mr. Green
blue_phoenix
Client obisnuit
**

Karma: 0
Deconectat Deconectat

Mesaje: 57



Vezi Profilul
« Răspunde #18 : Decembrie 16, 2011, 10:03:46 »

a da, asa e. de data asta nu cere rezultatul modulo ceva, ci chiar numarul. multumesc!
Memorat
SpiderMan
Nu mai tace
*****

Karma: -463
Deconectat Deconectat

Mesaje: 937



Vezi Profilul
« Răspunde #19 : Decembrie 16, 2011, 16:18:24 »

Va puteti uita sa vedeti daca e buna limita de timp ?
[PS] : Si daca e buna, am 95 puncte, si nu stiu ce sa mai optimizez, am facut dinamica cu baza 109, dar tot nu iasa...
Memorat
vendetta
De-al casei
***

Karma: 72
Deconectat Deconectat

Mesaje: 122



Vezi Profilul
« Răspunde #20 : Septembrie 04, 2012, 21:15:55 »

Salut!
Am o complexitate de N*K*Const (const fiind de la numerele mari) dar iau maxim 90 de puncte! Ultima sursa de 100 de puncte a fost la inceputul anului. De vina e  : evaluatorul sau implementarea mea ?
« Ultima modificare: Septembrie 04, 2012, 21:21:22 de către Salajan Razvan » Memorat
Schumi
Client obisnuit
**

Karma: 36
Deconectat Deconectat

Mesaje: 74



Vezi Profilul
« Răspunde #21 : Septembrie 05, 2012, 12:11:26 »

Si eu iau maxim 95 cu TLE pe testul 10. Din cate vad, din februarie nu a mai luat nimeni 100. Cred ca trebuie marita limita putin.
Memorat
freak93
Echipa infoarena
Nu mai tace
*****

Karma: 342
Deconectat Deconectat

Mesaje: 819



Vezi Profilul
« Răspunde #22 : Septembrie 05, 2012, 12:34:40 »

Fixed  Very Happy
Memorat
freak93
Echipa infoarena
Nu mai tace
*****

Karma: 342
Deconectat Deconectat

Mesaje: 819



Vezi Profilul
« Răspunde #23 : Noiembrie 09, 2013, 22:16:07 »

Am vazut ca limita de timp era un pic prea stransa. A fost marita la 0.8.
Memorat
Pagini: [1]   În sus
  Imprimă  
 
Schimbă forumul:  

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