Diferente pentru preoni-2007/runda-2/solutii intre reviziile #27 si #28

Nu exista diferente intre titluri.

Diferente intre continut:

In momentul in care citim o interogare de forma {$K P$}, vom genera toate posibilitatile de resturi la impartirea cu $P$ ale primelor $K-1$ numere din suma, al {$K$}-lea rest fiind unic determinat. Pentru o astfel de configuratie de resturi stim in timp {$O(1)$} care este cea mai mare suma ( daca exista ) a unor elemente care sa aiba resturile astfel stabilite, prin utilizarea informatiilor din tabloul {$M$}.
De exemplu, daca $K = 3$ si {$P = 4$}, pentru primele doua resturi stabilite ale primelor doua numere ( sa zicem ca aceste resturi au valoarea $3$ si respectiv {$2$}), restul celui de-al treilea numar la impartirea cu $4$ nu poate fi decat $3$. Acum, folosind tabloul {$M$} calculat anterior, trebuie sa stim care sunt cele mai mari doua numere care dau la impartirea cu $4$ restul $3$ si care este cel mai mare numar care la impartirea cu $4$ da restul {$2$}. Aceasta suma poate fi calculata deci in {$O(1)$}. Vom genera ( prin metoda backtracking sau folosind mai multe for-uri imbricate ) toate configuratiile posibile de resturi, si o vom retine pe cea care genereaza suma cea mai mare, suma pe care ulterior o vom afisa. Complexitatea finala este deci {$O(N + M * P^K-1^)$}, care asigura punctajul maxim, folosind nivelul cunostintelor de clasa a IX-a.
O alta solutie mai eleganta dar care depaseste cunostintele de clasa a IX-a ar fi cea care foloseste programarea dinamica in modul urmator: se noteaza cu {$D{~i,j,r~}$} care este suma maxima folosind $i$ numere din primele $j$ resturi posibile la impartirea cu $P$ si pana in momentul curent sa avem format restul {$r$}. Se construieste acest tablou in mod {_bttom-up_}. Raspunsul se va afla in {$D{~K,P-1,0~}$}. Complexitatea unui astfel de algoritm este {$O(N + M * K^2^ * P^2^)$}, care de asemenea obtine 100 de puncte.
O alta solutie mai eleganta dar care depaseste cunostintele de clasa a IX-a ar fi cea care foloseste programarea dinamica in modul urmator: se noteaza cu {$D{~i,j,r~}$} care este suma maxima folosind $i$ numere din primele $j$ resturi posibile la impartirea cu $P$ si pana in momentul curent sa avem format restul {$r$}. Se construieste acest tablou in mod {_bottom-up_}. Raspunsul se va afla in {$D{~K,P-1,0~}$}. Complexitatea unui astfel de algoritm este {$O(N + M * K^2^ * P^2^)$}, care de asemenea obtine 100 de puncte.
h2. 'Zone':problema/zone

Nu exista diferente intre securitate.

Topicul de forum nu a fost schimbat.