ACwing 1015 摘花生
第(i , j) 个点 的最大值由 前(i-1 ,j) 和 (i,j-1) 转移而来
w[i] [j] 为矩阵中存储的权值
状态转移方程:
f
[
i
]
[
j
]
=
M
a
t
h
.
m
a
x
(
f
[
i
]
[
j
]
,
M
a
t
h
.
m
a
x
(
f
[
i
−
1
]
[
j
]
,
f
[
i
]
[
j
−
1
]
)
+
w
[
i
]
[
j
]
)
;
f[i][j] = Math.max(f[i][j] ,Math.max( f[i-1][j] , f[i][j-1])+w[i][j]);
f[i][j]=Math.max(f[i][j],Math.max(f[i−1][j],f[i][j−1])+w[i][j]);
import java.util.*;
public class Main{
static int N = 105;
static int[][] g = new int[N][N];
public static void main(String[] args){
Scanner in = new Scanner(System.in);
int t = in.nextInt();
while(t-->0){
int[][] f = new int[N][N];
int r = in.nextInt();
int c = in.nextInt();
for(int i = 1 ; i <= r ; i++){
for(int j = 1 ; j<= c ;j++){
g[i][j] = in.nextInt();
}
}
for(int i = 1; i <= r ; i++){
for(int j = 1 ; j <= c ;j++){
f[i][j] = Math.max(f[i][j] ,Math.max( f[i-1][j] , f[i][j-1])+g[i][j]);
}
}
System.out.println(f[r][c]);
}
}
}