Programmazione dinamica

Stampa della sottosequenza bitonica più lunga
2026

Stampa della sottosequenza bitonica più lunga

Il problema della sottosequenza bitonica più lunga consiste nel trovare la sottosequenza più lunga di una data sequenza tale che sia prima crescente e poi decrescente. Una sequenza ordinata in ordine crescente è considerata bitonica con la parte decrescente vuota. Allo stesso modo, la sequenza di ordine decrescente è considerata bitonica con la parte crescente vuota. Esempi:

Stampa catena di coppie di lunghezza massima
2026

Stampa catena di coppie di lunghezza massima

Ti vengono fornite n coppie di numeri. In ogni coppia, il primo numero è sempre più piccolo del secondo numero. Una coppia (c, d) può seguire un'altra coppia (a, b) se b < c. In questo modo è possibile formare una catena di coppie. Trova la catena più lunga che può essere formata da un dato insieme di coppie. Esempi:

Trova tutte le combinazioni di numeri a k ​​bit con n bit impostati dove 1  <= n  <= k in ordine ordinato
2026

Trova tutte le combinazioni di numeri a k ​​bit con n bit impostati dove 1 <= n <= k in ordine ordinato

Dato un numero k, trova tutte le possibili combinazioni di numeri a k ​​bit con n bit impostati dove 1 <= n <= k. La soluzione dovrebbe stampare prima tutti i numeri con un bit impostato, seguiti dai numeri con due bit impostati,... fino ai numeri di cui sono impostati tutti i k-bit. Se due numeri hanno lo stesso numero di bit impostati, allora il numero più piccolo dovrebbe venire prima. Esempi:

Costo minimo per rendere due stringhe identiche
2026

Costo minimo per rendere due stringhe identiche

Date due stringhe X e Y e due valori costX e costY. Dobbiamo trovare il costo minimo richiesto per rendere identiche le due stringhe indicate. Possiamo eliminare caratteri da entrambe le stringhe. Il costo per eliminare un carattere dalla stringa X è costX e da Y è costY. Il costo per rimuovere tutti i caratteri da una stringa è lo stesso.

Costo minimo per riempire un determinato peso in un sacco
2026

Costo minimo per riempire un determinato peso in un sacco

Ti viene dato un sacchetto di dimensioni W kg e ti vengono forniti i costi dei pacchetti di arance di diverso peso nell'array cost[] dove cost[i] è fondamentalmente il costo di un pacchetto di arance da 'i' kg. Dove costo[i] = -1 significa che il pacchetto di arance da 'i' kg non è disponibile. Trova il costo totale minimo per acquistare esattamente W kg di arance e se non è possibile acquistare esattamente W kg di arance, stampa -1. Si può presumere che esista una fornitura infinita di tutti i tipi di pacchetti disponibili. Nota: l'array inizia dall'indice 1.

Percorso con valore medio massimo
2026

Percorso con valore medio massimo

Data una matrice quadrata di dimensione N*N, dove ad ogni cella è associato un costo specifico. Un percorso è definito come una sequenza specifica di celle che inizia dalla cella in alto a sinistra, si sposta solo a destra o in basso e termina nella cella in basso a destra. Vogliamo trovare un percorso con la media massima su tutti i percorsi esistenti. La media viene calcolata come costo totale diviso per il numero di celle visitate nel percorso.

Percorso della somma minima nella matrice 3D
2026

Percorso della somma minima nella matrice 3D

Dato un array 3D arr[l][m][n], il compito è trovare la somma del percorso minimo dalla prima cella all'ultima cella dell'array. Possiamo solo attraversare un elemento adiacente, cioè da una determinata cella (i, j, k), le celle (i+1, j, k), (i, j+1, k) e (i, j, k+1) possono essere attraversate, l'attraversamento diagonale non è consentito. Possiamo supporre che tutti i costi siano numeri interi positivi.