求问为什么 1、8 个点 LE 了
查看原帖
求问为什么 1、8 个点 LE 了
1289839
ICPC42楼主2024/3/26 16:19
import java.util.Arrays;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int m = scanner.nextInt(), n = scanner.nextInt();
        int[][] arr = new int[m + 1][n + 1];
        for (int i = 1; i <= m; i++) {
            for (int j = 1; j <= n; j++) {
                arr[i][j] = scanner.nextInt();
            }
        }

        int[][] dp = new int[m + 1][n + 1];
        for (int i = 1; i <= m; i++) {
            Arrays.fill(dp[i], 0xc0c0c0c0);
        }
        dp[m][(n - 1) / 2] = arr[m][(n - 1) / 2];
        dp[m][(n - 1) / 2 + 1] = arr[m][(n - 1) / 2 + 1];
        dp[m][(n - 1) / 2 + 2] = arr[m][(n - 1) / 2 + 2];
        for (int i = m - 1; i >= 1; i--) {
            for (int j = 1; j <= n; j++) {
                dp[i][j] = arr[i][j]
                        + Math.max(dp[i + 1][Math.max(j - 1, 1)],
                                Math.max(dp[i + 1][j], dp[i + 1][Math.min(j + 1, n)]));
            }
        }
        System.out.println(Arrays.stream(dp[1]).skip(1).max().getAsInt());
        scanner.close();
    }
}

2024/3/26 16:19
加载中...