Acceso bidimensional dp

acwing 1027. acceso cuadrado

https://www.acwing.com/problem/content/1029/

Para caminar una vez, la ecuación de transición de estado es fácil de obtener: $ f [i] [j] = max (f [i-1] [j], f [i] [j-1]) + w [i] [j] $.

Y para dos caminatas, establezca el estado en $ f [i_1] [j_1] [i_2] [j_2] $ significa que la primera ruta va de $ (1, 1) $ a $ (i_1, j_1) $, la primera La suma máxima de las dos rutas de $ (1, 1) $ a $ (i_2, j_2) $.

El núcleo de esta pregunta es: cómo lidiar con la misma cuadrícula no se puede tomar dos veces. El análisis muestra que solo cuando $ i_1 + j_1 = i_2 + j_2 $, la cuadrícula puede ser la misma cuadrícula, lo que también nos inspiró a reducir el estado en una dimensión.

Use $ k = i_1 + j_1 = i_2 + j_2 $, para que el estado se convierta en $ f [k] [i_1] [i_2] $.

1 #include <iostream>
 2 #include <algorithm>
 3  
4  usando el  espacio de nombres std;
5  
6  const  int N = 15 ;
7  
8  int n;
9  int w [N] [N];
10  int f [N * 2 ] [N] [N];
11  
12  int main ()
 13  {
 14      cin >> n;
15  
16      int a, b, c;
17      while (cin >> a >> b >> c, a || b || c) w [a] [b] = c;
18 años 
19      para ( int k = 2 ; k <= n + n; k ++ )
 20          para ( int i1 = 1 ; i1 <= n; i1 ++ )
 21              para ( int i2 = 1 ; i2 <= n; i2 ++ )
 22              {
 23                  int j1 = k - i1, j2 = k - i2;
24                  if (j1> = 1 && j1 <= n && j2> = 1 && j2 <= n)
 25                  {
 26                      int t = w [i1] [j1];
27                      si(i1! = i2) t + = w [i2] [j2];
28                      int & x = f [k] [i1] [i2];
29                      x = max (x, f [k - 1 ] [i1 - 1 ] [i2 - 1 ] + t);
30                      x = max (x, f [k - 1 ] [i1 - 1 ] [i2] + t);
31                      x = max (x, f [k - 1 ] [i1] [i2 - 1 ] + t);
32                      x = max (x, f [k - 1 ] [i1] [i2] + t);
33                  }
 34              }
 35  
36     cout << f [n + n] [n] [n] << endl;
37      devuelve  0 ;
38 }

 

Supongo que te gusta

Origin www.cnblogs.com/1-0001/p/12681184.html
Recomendado
Clasificación