Diferente pentru fmi-no-stress-4/solutii intre reviziile #21 si #20

Nu exista diferente intre titluri.

Diferente intre continut:

Pentru modul in care putem calcula perioada ne uitam de exemplu la ultima cifra a numerelor din sir (adica modulo $10$) si putem observa ca momentul in care incep numerele sa se repete este cand apar valorile $0$ si $1$ alaturate in sir. Astfel putem genera sirul lui Fibonacci modulo $R$ pana cand gasim valorile $0$ si $1$ alaturate. Perioada pentru valoarea $R$ nu va depasi niciodata valoarea $4*R$, pentru orice $R$ numarul natural.
h2. 'Plicuri':problema/plicuri
 
h4. $Solutie: O(N * log N) - 100 puncte$
 
Stim ca un plic $i$ poate fi introdus intr-un plic $j$ daca este adevarata una din urmatoarele conditii:
 
* L[i] < L[j] si W[i] < W[j]
* L[i] < W[j] si W[i] < L[j]
 
Cu alte cuvinte, putem spune ca un plic $i$ poate fi introdus intr-un plic $j$ daca este adevarata conditia:
 
* min(L[i], W[i]) < min(L[j], W[j]) && max(L[i], W[i]) < max(L[j], W[j])
 
Astfel, ca sa ne fie mai usor sa "comparam" doua plicuri in functie de dimensiunile acestora, vom retine pentru fiecare plic $i$, dimensiunea mai mica a sa in $L[i]$, iar cealalta dimensiune in $W[i]$. Acum putem spune ca un plic $i$ poate fi introdus intr-un plic $j$ daca:
 
* L[i] < L[j] && W[i] < W[j]
 
Problema ne cere sa aflam lungimea maxima $K$ a unui subsir de plicuri, astfel incat primul plic sa incapa in al doilea, al doilea in al treilea, ..., al $K-1$-lea in al $K$-lea. Intuitiv, aceasta cerinta ne duce cu gandul la un algoritm de tipul subsir crescator maximal. Pentru a aplica insa acest algoritm pe aceasta problema, trebuie sa avem plicurile intr-o ordine convenabila. Vom sorta plicurile crescator dupa dimensiunea L a acestora, iar in caz de egalitate, descrescator dupa dimensiunea W. Astfel, vom sti ca pentru oricare doua plicuri $i$ si $j$, cu $i < j$, vom avea doua cazuri:
 
* $L[i] < L[j]$, deci este suficient sa comparam dimensiunea W ca sa ne dam seama daca plicul $i$ poate fi introdus in plicul $j$.
* $L[i] = L[j]$, deci $W[i] > W[j]$, datorita conditiei de sortare in caz de egalitate. Deci si in acest caz, este suficient sa comparam doar dimensiunea W a plicurilor pentru a sti daca pot fi introduse unul in celalalt.
 
Asadar, in continuare putem aplica algoritmul de determinare a subsirului crescator maximal pe vectorul dimensiunii W a plicurilor, afisand lungimea determinata. Acest algoritm este explicat in detaliu la acest link: 'Scmax':problema/scmax.
 
h2. 'Camionas':problema/camionas
Solutii prezentate de ==user(user="Teodor94" type="tiny")==.
h2. 'Peluza Sud':problema/peluzasud
Problema are numeroase soluţii care se încadrează în timp. Evident, o secvenţă care constituie un răspuns valid pentru testul maxim este răspuns corect şi pentru orice alt test. Vrem deci să găsim o secvenţă continuă de $30$ de numere compuse între $10^14^$ şi $10^15^$. O soluţie ar putea fi, spre exemplu,  un multiplu comun al primelor $31$ de numere naturale, situat în intervalul dorit, dar se pot obţine $100$ de puncte şi folosind un algoritm randomizat. Toate aceste soluţii pot fi folosite şi pentru a precalcula răspunsul.
Problema are numeroase soluţii care se încadrează în timp. Evident, o secvenţă care constituie un răspuns valid pentru testul maxim este răspuns corect şi pentru orice alt test. Vrem deci să găsim o secvenţă continuă de $30$ de numere compuse între $10^14^$ şi $10^15^$. O soluţie ar putea fi, spre exemplu,  un multiplu comun al primelor $31$ de numere naturale, situat în intervalul dorit, dar se pot obţine $100$ de puncte şi folosind un algoritm randomizat. Toate aceste soluţii pot fi folosite şi pentru a precalcula răspunsul.
 

Nu exista diferente intre securitate.

Topicul de forum nu a fost schimbat.