为什么java使用=初始化数组有一个用例通过不了,而+=就能通过?
查看原帖
为什么java使用=初始化数组有一个用例通过不了,而+=就能通过?
1329943
jiajialin111楼主2024/5/2 18:06

未通过的代码

package com.jialin.luogu;

import java.util.Scanner;

public class Main {
    static int N = 5002;
    public static void main(String[] args){
        Scanner in  = new Scanner(System.in);
        int n = in.nextInt();
        int m = in.nextInt();
        int[][] sum = new int[N][N];
        for(int i = 1; i <= n; i++){
            int x = in.nextInt();
            int y = in.nextInt();
            sum[x + 1][y + 1] = in.nextInt();
        }

        for(int i = 1; i < sum.length; i++)
            for(int j = 1; j < sum[0].length; j++)
                sum[i][j] += sum[i-1][j]  + sum[i][j-1] -  sum[i-1][j-1];

        int res = 0;
        for(int i = m; i < 5002; i++)
            for(int j = m; j < 5002; j++)
                res = Math.max(res, sum[i][j] - sum[i][j-m] - sum[i-m][j] + sum[i-m][j-m]);
        System.out.print(res);
    }
}

通过的代码:

package com.jialin.luogu;

import java.util.Scanner;

public class Main {
    static int N = 5002;
    public static void main(String[] args){
        Scanner in  = new Scanner(System.in);
        int n = in.nextInt();
        int m = in.nextInt();
        int[][] sum = new int[N][N];
        for(int i = 1; i <= n; i++){
            int x = in.nextInt();
            int y = in.nextInt();
            sum[x + 1][y + 1] += in.nextInt();
        }

        for(int i = 1; i < sum.length; i++)
            for(int j = 1; j < sum[0].length; j++)
                sum[i][j] += sum[i-1][j]  + sum[i][j-1] -  sum[i-1][j-1];

        int res = 0;
        for(int i = m; i < 5002; i++)
            for(int j = m; j < 5002; j++)
                res = Math.max(res, sum[i][j] - sum[i][j-m] - sum[i-m][j] + sum[i-m][j-m]);
        System.out.print(res);
    }
}

请问这是为什么? 未通过用例:Subtask #1

2024/5/2 18:06
加载中...