📄 1559.cpp
字号:
#include<iostream>
#include<string>
using namespace std;
int a[1001][1001];
int s[1001][1001];
void main()
{
int t,m,n,x,y,i,j,max;
cin>>t;
while(t--){
cin>>m>>n>>x>>y;
memset(a,0,sizeof(a));
memset(s,0,sizeof(s));
for(i=0;i<m;i++)
for(j=0;j<n;j++)
cin>>a[i][j];
s[0][0]=a[0][0];
for(i=1;i<m;i++)
s[i][0]=s[i-1][0]+a[i][0];
for(j=1;j<n;j++)
s[0][j]=s[0][j-1]+a[0][j];
for(i=1;i<m;i++)
for(j=1;j<n;j++)
s[i][j]=s[i-1][j]+s[i][j-1]-s[i-1][j-1]+a[i][j];
max=0;
for(i=x-1;i<m;i++)
for(j=y-1;j<n;j++)
if(i==x-1&&j==y-1){
if(s[i][j]>max)
max=s[i][j];
}
else if(i==x-1){
if(s[i][j]-s[i][j-y]>max)
max=s[i][j]-s[i][j-y];
}
else if(j==y-1){
if(s[i][j]-s[i-x][y]>max)
max=s[i][j]-s[i-x][y];
}
else{
if(s[i][j]-s[i-x][j]-s[i][j-y]+s[i-x][j-y]>max)
max=s[i][j]-s[i-x][j]-s[i][j-y]+s[i-x][j-y];
}
cout<<max<<endl;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -