Poenta je da za desnu stranu nadjes samo proizvode koje je moguce dobiti, videces da je to mali procenat (265 od 5000) koje je moguce dobiti na levoj strani. To mozes naci u M*logM vremenu, gde je M=5000. Posle toga radis normalno dinamicko za desnu stranu samo moras da pazis kakve strukture koristis (malo je pipavo), ne bi li skratio vreme.
Ako je K (K=265) broj proizvoda/zbira koji se mogu dobiti na obe strane onda ti je slozenost K*N gde je N-duzina broja.
Sve u svemu, resenje nije toliko tesko koliko ga je mozda tesko implementirati.
Elem, znaci kada nadjes tih K brojeva, dinamicko radis samo za desnu stranu, dok za levu radis sledecu stvar:
- Na koliko nacina se moze napraviti zbir A od N cifara, gde prva cifra nije nula. - Resenje: To je koeficijent uz x^A u razvoju polinoma ( 1 + x + x^2 + x^3 + ... + x^9 )^N, minus koeficient us x^A u razvoju polinoma ( 1 + x + x^2 + x^3 + ... + x^9 )^(N-1). Kao sto vidis ovo je samo reformulacija problema, medjutim, sada mozes da stepenujes polinom binarno. I tako nadjes sve sto ti je potrebno :)
imam pitanje za admina: kako bi, na primer, islo pronalazenje broja kombinacija tih "desnih" brojeva ciji proizvod moze da bude NEKI broj? cini mi se da si rekao da se radi dinamicki, ali jel moze jos neki uput? :) naime, ja sam, bar tako mislim, pronasao kombinatornu formulu koja racuna broj kombinacija "levih" brojeva tako da im je suma NEKI broj, ali za ovo mi nista korisno ne pada na pamet!!!
Da, postoji matematicka formula, ne znam kako se tacno zove na srpskom, ... to je isto sto i binomna formula, ali ne za binome nego za polinome, mozda se zove polinomialna formula.. To se vidi iz teksta koji sam gore napisao. U svakom slucaju, i ta formula sadrzi sumu u sebi..
Desna strana:
Razmisljaj na ovaj nacin: - Kako da dobijem proizvod = A pomocu N cifara... ? - mogu da imam proizvod A/9 od N-1 cifru, pa dodam devetku... - ili mozda A/8 pa dodam 8... - ili....
pa da... postoji naziv i cak mislim da se broj mogucnosti za "levo" naziva: "broj uredjenih razbijanja broja N" (u kombinatorici)! al' opet za "desno": zar sada nece biti problem rasclanivanje slucajeva da se u posmatranju A/9 dodaje jedna 9 za N-1 ili dve trojke za N-2; ili za 8 - umesto 8 mogu se dodati tri dvojke... mozda nisam lepo svatio! :[