轰炸区最优选取
题目链接:https://ac.nowcoder.com/acm/problem/14505
思路:前缀和
#include<bits/stdc++.h> using namespace std; typedef long long ll; const int maxn=60; int arr[maxn][maxn]; int sum[maxn][maxn]; int n,k; int main(){ while(cin>>n>>k){ for(int i=1;i<=n;i++){ for(int j=1;j<=n;j++){ cin>>arr[i][j]; sum[i][j]=sum[i-1][j]+sum[i][j-1]-sum[i-1][j-1]+arr[i][j]; } } int ans=0; for(int i=k;i<=n;i++){ for(int j=k;j<=n;j++){ ans=max(ans,sum[i][j]-sum[i-k][j]-sum[i][j-k]+sum[i-k][j-k]); } } cout<<ans<<endl; } return 0; }
浙公网安备 33010602011771号