Pagini: [1]   În jos
  Imprimă  
Ajutor Subiect: 1445 Peluza Nord  (Citit de 1658 ori)
0 Utilizatori şi 1 Vizitator pe acest subiect.
wefgef
Nu mai tace
*****

Karma: 1049
Deconectat Deconectat

Mesaje: 3.008


razboinicu' luminii


Vezi Profilul
« : Noiembrie 17, 2013, 18:17:48 »

Aici puteţi discuta despre problema Peluza Nord.
Memorat

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


Karma: 1
Deconectat Deconectat

Mesaje: 11



Vezi Profilul
« Răspunde #1 : Noiembrie 20, 2013, 20:52:43 »

Buna, imi puteti da si mie o idee cam cum ar trebui rezolvata problema asta?
Am citit acest articol http://en.wikipedia.org/wiki/Harshad_number , insa nu prea pricep ce si cum.
Memorat
florin.elfus
Strain
*

Karma: 109
Deconectat Deconectat

Mesaje: 43



Vezi Profilul
« Răspunde #2 : Noiembrie 20, 2013, 22:32:50 »

Nu am rezolvat problema inca, dar cred ca se poate face cu o dinamica. Intai observi ca numarul de numere shukare din intervalul [A, B] este de fapt numarul de numere shukare din intervalul [1, B] - numarul de numere shukare din intervalul [1, A - 1].

Acum pentru a calcula numarul de numere shukare din [1, X] iti tii urmatoarea dinamica:

dp[nr_cifre][suma_cifre_actuala][suma_cifre_dorita][rest_modulo_suma_cifre_dorita][prefix_egal] = numarul de numere <= X astfel incat contin nr_cifre cifre, suma cifrelor celor nr_cifre este suma_cifre_actuala, dupa ce mai adaug alte cifre doresc sa obtin suma_cifre_dorita, restul sumei cifrelor celor nr_cifre de pana acum modulo suma_cifre dorita este rest_modulo_suma_cifre_dorita, iar prefix_egal este 1 daca pana acum toate cele nr_cifre adaugate coincid cu primele nr_cifre ale numarului X si 0 altfel.

Pentru rezultat o sa ai ceva gen suma din dp[orice][orice2][orice2][0][0 sau 1]. La recurente e putin mai complicat Smile Nu am testat-o, dar sper sa fie bine.
Memorat
bciobanu
Strain


Karma: 5
Deconectat Deconectat

Mesaje: 19



Vezi Profilul
« Răspunde #3 : Februarie 13, 2016, 19:34:40 »

Ma poate ajuta cineva cu o idee? Am o solutie in O(3 * 10 * MAX_SUMA_CIFRE ^ 3 * NR_CIFRE).
Memorat
klamathix
Echipa infoarena
Nu mai tace
*****

Karma: 733
Deconectat Deconectat

Mesaje: 1.216



Vezi Profilul
« Răspunde #4 : Februarie 13, 2016, 22:08:48 »

Ai o idee exact mai sus  Smile
Memorat
bciobanu
Strain


Karma: 5
Deconectat Deconectat

Mesaje: 19



Vezi Profilul
« Răspunde #5 : Februarie 14, 2016, 00:31:30 »

Edit: se pare ca se incadreaza in timp cu memoizare  Applause
« Ultima modificare: Februarie 14, 2016, 03:02:40 de către Bogdan Ciobanu » Memorat
Pagini: [1]   În sus
  Imprimă  
 
Schimbă forumul:  

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