dfs:轰炸区最优选取
import java.util.Arrays; import java.util.HashMap; import java.util.Scanner; import java.util.*; public class Main { static int a[][]; static int n; static int maxp; static int dfs(int k,int l,int r,int arr[][]){ maxp = 0; for(int i = r;i < r + k;i++){ for(int j = l;j < l + k;j++){ maxp += arr[i][j]; } } return maxp; } public static void main(String[] args) { Scanner sc = new Scanner(System.in); List<Integer> mylist = new ArrayList<>(); HashMap map = new HashMap(); int n = sc.nextInt(); int k = sc.nextInt(); a = new int[n][n]; for(int i = 0;i < n;i++){ for(int j = 0;j <n;j++){ a[i][j] = sc.nextInt(); } } int max = 0; for(int i = 0;i < n - k + 1;i++){ for(int j = 0;j < n - k + 1;j++){ int max2 = dfs(k,i,j,a); max = Math.max(max,max2); } } System.out.println(max); } }