怎么说呢 感谢题解大佬
好好提升自己吧呜呜呜
import java.io.*;
import java.util.*;
import java.math.*;
public class Main{
public static void main(String[] args) {
//FastReader in = new FastReader();
Scanner in = new Scanner(System.in);
int T = in.nextInt();
while(T-- > 0){
long count = 0;
int N = in.nextInt();
int M = in.nextInt();
long[][] dp = new long[N][2];
long[][] arr = new long[N][M];
for(int i = 0; i < N; i++){
for(int j = 0; j < M; j++){
arr[i][j] = in.nextLong();
}
}
for(int i = 0; i < M ; i ++){
count += arr[0][i];
dp[0][0] = Math.max(dp[0][0], count);
}
dp[0][1] = count;
for(int i = 1 ; i < N; i ++){
long l = 0, r = 0;
for(int j = 0, k = M - 1; j < M; j ++, k --){
l += arr[i][j];
r += arr[i][k];
dp[i][0] = Math.max(dp[i][0], l);
dp[i][1] = Math.max(dp[i][1], r);
}
dp[i][0] = Math.max(dp[i][0] + dp[i - 1][0], dp[i - 1][1] + r);
dp[i][1] = Math.max(dp[i][1] + dp[i - 1][1], dp[i - 1][0] + l);
}
System.out.println(Math.max(dp[N - 1][0], dp[N - 1][1]));
}
}
// static class FastReader {
// BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
// StringTokenizer st = new StringTokenizer("");
// String next() {
// while (!st.hasMoreTokens())
// try {
// st = new StringTokenizer(br.readLine());
// } catch (IOException e) {
// e.printStackTrace();
// }
// return st.nextToken();
// }
// int nextInt() {
// return Integer.parseInt(next());
// }
// int[] readArray(int n) {
// int[] a = new int[n];
// for (int i = 0; i < n; i++) a[i] = nextInt();
// return a;
// }
// long nextLong() {
// return Long.parseLong(next());
// }
// double nextDouble() {
// return Double.parseDouble(next());
// }
// }
}