Máxima submatriz programacion dinamica

Para encontrar la máxima submatriz en una matriz dada utilizando programación dinámica, puedes seguir el siguiente enfoque:

1. Crea una matriz auxiliar de igual tamaño que la matriz original para almacenar la suma acumulativa de los elementos en la submatriz hasta ese punto.

2. Inicializa la primera fila y la primera columna de la matriz auxiliar con los valores de la matriz original.

3. Para cada celda restante en la matriz auxiliar, calcula la suma acumulativa como la suma del valor actual de la matriz original más el valor de la celda encima y a la izquierda, menos el valor de la celda diagonalmente opuesta (para evitar contar el mismo valor dos veces).

4. Encuentra la submatriz con la suma máxima en la matriz auxiliar y guarda sus coordenadas.

5. Utiliza las coordenadas de la submatriz con la suma máxima para extraer la submatriz correspondiente de la matriz original.

A continuación te muestro un ejemplo de implementación en Python:

```python

def max_submatrix(matrix):

rows = len(matrix)

cols = len(matrix[0])

# Crear matriz auxiliar para almacenar la suma acumulativa

dp = [[0 for _ in range(cols)] for _ in range(rows)]

# Inicializar primera fila y primera columna

for i in range(rows):

dp[i][0] = matrix[i][0]

for j in range(cols):

dp[0][j] = matrix[0][j]

# Calcular suma acumulativa para cada celda

for i in range(1, rows):

for j in range(1, cols):

dp[i][j] = matrix[i][j] + dp[i-1][j] + dp[i][j-1] - dp[i-1][j-1]

max_sum = float('-inf')

top, left, bottom, right = 0, 0, 0, 0

# Encontrar submatriz con la suma máxima

for i in range(rows):

for j in range(cols):

for k in range(i, rows):

for l in range(j, cols):

current_sum = dp[k][l]

if i > 0:

current_sum -= dp[i-1][l]

if j > 0:

current_sum -= dp[k][j-1]

if i > 0 and j > 0:

current_sum += dp[i-1][j-1]

if current_sum > max_sum:

max_sum = current_sum

top, left, bottom, right = i, j, k, l

return max_sum, top, left, bottom, right

# Ejemplo de uso

matrix = [

[1, 2, -1, -4, -20],

[-8, -3, 4, 2, 1],

[3, 8, 10, 1, 3],

[-4, -1, 1, 7, -6]

]

max_sum, top, left, bottom, right = max_submatrix(matrix)

print("La máxima submatriz tiene una suma de:", max_sum)

print("Sus coordenadas son: (", top, ",", left, ") - (", bottom, ",", right, ")")

```

Este código implementa el algoritmo descrito anteriormente para encontrar la máxima submatriz en una matriz dada. Puedes probarlo con diferentes matrices para ver cómo funciona.

Cuántos españoles cobran la pensión máxima

Según datos del Instituto Nacional de la Seguridad Social (INSS) de España, aproximadamente el 3% de los pensionistas en España cobran la pensión máxima. Esto representa alrededor de 400,000 personas.

Película alerta máxima 2

Alerta Máxima 2 es una película de acción de 1995 dirigida por Geoff Murphy y protagonizada por Steven Seagal. En esta secuela, Seagal retoma su papel como Casey Ryback, un ex Navy SEAL que se ve en

Masa máxima autorizada de furgón con el b

La masa máxima autorizada de un furgón con el que se puede circular legalmente depende de las regulaciones específicas de cada país. En general, la masa máxima autorizada de un vehículo se refiere al

Duración máxima prestación por desempleo

La duración máxima de la prestación por desempleo varía según el país y la legislación vigente. En muchos países, la duración máxima suele ser de entre 6 meses y 2 años, dependiendo de factores como e

Calculo frecuencia cardíaca máxima

La frecuencia cardíaca máxima se puede calcular de forma aproximada restando tu edad a 220. Por ejemplo, si tienes 30 años, tu frecuencia cardíaca máxima sería aproximadamente 190 latidos por minuto (

Aspiradores con bolsa máxima potencia

Los aspiradores con bolsa de máxima potencia suelen ser aquellos que cuentan con un motor potente y una capacidad de succión elevada. Estos aspiradores son ideales para hogares con alfombras gruesas,

Hora de máxima temperatura corporal

La temperatura corporal alcanza su punto máximo generalmente al final de la tarde o al principio de la noche, alrededor de las 6:00 p.m. a 8:00 p.m. Por lo tanto, la hora de máxima temperatura corpora

A criterio de la intensidad máxima admisible cargadores electricos

La intensidad máxima admisible en cargadores eléctricos dependerá de varios factores, como la capacidad de la instalación eléctrica, la normativa local y las especificaciones del cargador en sí. En ge

Velocidad máxima camiones estados unidos

La velocidad máxima para camiones en Estados Unidos varía según el estado y el tipo de carretera. En general, la velocidad máxima para camiones en autopistas interestatales es de 65 a 75 millas por ho

Cuantía máxima de la rgi

La cuantía máxima de la Renta de Garantía de Ingresos (RGI) varía según la comunidad autónoma en la que se solicite. En general, la cuantía máxima suele estar alrededor de los 700-800 euros mensuales