Lista de probleme 878

Filtrare

Se dă un șir de n numere naturale. Să se determine numărul minim de subșiruri strict crescătoare în care se poate partiționa șirul.

#2675 scara1

Domnul G are de urcat o scară cu n trepte. În mod normal, la fiecare pas pe care îl face, el urcă o treaptă. Pe k dintre aceste trepte se află câte o sticlă cu un număr oarecare de decilitri de apă, fie acesta x. Dacă bea toată apa dintr-o astfel de sticlă, forța și mobilitatea lui G cresc, astfel încât, la următorul pas el poate urca până la x trepte, după care, dacă nu bea din nou ceva, revine la “normal”. Sticlele cu apă nu costă nimic. Cantitatea de apă conținută de aceste sticle poate să difere de la o treaptă la alta.
Pe j trepte se află câte o sticlă cu băutura energizantă. Şi pentru aceste sticle, cantitatea de băutură energizantă poate să difere de la o treaptă la alta. Să presupunem că într-una dintre aceste sticle avem y decilitri de băutură energizantă. Dacă bea q (q ≤ y) decilitri dintr-o astfel de sticlă, la următorul pas G poate urca până la 2q trepte, după care şi în acest caz, dacă nu bea din nou ceva, el revine la “normal”. Însă băutura energizantă costă: pentru o cantitate de q decilitri consumaţi, G trebuie să plătească q lei grei.
Pot exista trepte pe care nu se află nici un pahar, dar şi trepte pe care se află atât o sticlă cu apă cât şi una cu băutură energizantă. În astfel de situaţii, nu are rost ca G să bea ambele băuturi deoarece efectul lor nu se cumulează; el poate alege să bea una dintre cele două băuturi sau poate să nu bea nimic.
Determinaţi p, numărul minim de paşi pe care trebuie să îi facă G pentru a urca scara, precum şi suma minimă pe care trebuie să o cheltuiască G pentru a urca scara în p paşi.

#2654 sortall C++

Pentru un șir de numere \( A \) se definește următoarea funcție de cost: \( f(A) = 1 \cdot v_1 + 2 \cdot v_2 + … + k \cdot v_k \), unde \( [v_1, v_2, …, v_k] \) sunt valorile distincte ale lui \( A \), ordonate crescător.

Fiind dat un șir de N numere naturale A, să se calculeze suma aplicării funcției f pe toate subsecvențele lui A (i.e. suma după (1 ≤ i ≤ j ≤ N) din f(A[i...j]), unde A[i…j] este subsecvența de la i la j).

#2631 h4

Spunem că două cuvinte sunt anagrame dacă au aceleași litere, eventual în altă ordine. De exemplu, abac și baca sunt anagrame, dar abac și abbc nu sunt. Dându-se un șir de cuvinte separate prin spații sau enter, vom considera că dacă mai multe cuvinte sunt anagrame, atunci ele fac parte din același grup. Să se determine numărul maxim de cuvinte dintr-un grup.

#2639 radiera

Un numar natural se numeste “numar scara” daca toate cifrele lui sunt ordonate crescator, de la stanga la dreapta. De exemplu 11223569 este un “numar scara”, dar 98873 si 122429 nu sunt. Mihnea primeste o radiera si o foaie pe care este scris un sir de cifre. El trebuie sa stearga cat mai putine cifre cu proprietatea ca daca lipim cifrele ramase in ordinea din sir vom avea un “numar scara”.

Să se determine numărul minim de ștergeri pe care trebuie să le facă Mihnea.

Se dau n șiruri de numere întregi ordonate crescător, de dimensiuni d[1], d[2], …, d[n]. Dacă se interclasează șirurile de dimensiuni d[i] și d[j] atunci se efectuează d[i]+d[j] operații și se obține un șir de dimensiuni d[i]+d[j]. Trebuie interclasate toate cele n șiruri. Pentru aceasta sunt necesari exact n - 1 pași. La fiecare pas se iau două șiruri, se interclasează și cele două șiruri se înlocuiesc cu noul șir. Să se determine numărul minim de operații necesare pentru a interclasa cele n șiruri.

#2629 h3

Tocmai ai primit cadou de ziua ta un șir de numere naturale a[1], a[2], …, a[n]. Ca să te simți împlinit, trebuie să determini lungimea maximă a unei secvențe cu proprietatea că oricare două valori din secvență sunt distincte. Determină lungimea maximă cerută și anul viitor vei mai primi un șir!

#2628 h2

În urma referendumului a rămas doar un șir de numere naturale a[1], a[2], …, a[n]. Să se determine cel mai mic număr care apare exact o dată în șir.

#2627 h1

Se dau două șiruri de numere naturale a[1], a[2], …, a[n] și b[1], b[2], …, b[m]. Să se determine câte numere distincte au în comun cele două șiruri. De exemplu, șirurile a=(2,5,1,4,5,1) și b=(1,1,1,3,7,5) au în comun două numere distincte: 1 și 5.

Fie o permutare de gradul n. Se cere să se calculeze perioada principală a funcției f(x) = x.