比赛 |
国庆欢乐赛3 |
评测结果 |
ATTTT |
题目名称 |
不重叠正方形 |
最终得分 |
20 |
用户昵称 |
李奇文 |
运行时间 |
7.999 s |
代码语言 |
C++ |
内存使用 |
15.72 MiB |
提交时间 |
2025-10-05 11:13:38 |
显示代码纯文本
#include<bits/stdc++.h>
#define int long long
using namespace std;
int n,m,ans;
int a[1005][1005],s[1005][1005];
signed main(){
freopen("zfx.in","r",stdin);
freopen("zfx.out","w",stdout);
ios::sync_with_stdio(0);
cin.tie(0);cout.tie(0);
cin>>n>>m;
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
cin>>a[i][j];
s[i][j]=s[i-1][j]+s[i][j-1]-s[i-1][j-1]+a[i][j];
}
}
for(int i=m;i<=n;i++){
for(int j=m;j<=n;j++){
for(int a=m;a<=n;a++){
for(int b=m;b<=n;b++){
for(int x=m;x<=n;x++){
for(int y=m;y<=n;y++){
if((i==a&&j==b)||(i==x&&j==y)||(x==a&&y==b)) continue;
if((y<=j&&x<=i&&i-m+1<=x&&j-m+1<=y)||(x-m+1<=i&&y-m+1<=j&&i<=x&&j<=y)||(b<=y&&a<=x&&x-m+1<=a&&y-m+1<=b)||(a-m+1<=x&&b-m+1<=y&&x<=a&&y<=b)||(j<=b&&i<=a&&a-m+1<=i&&b-m+1<=j)||(b<=j&&a<=i&&i-m+1<=a&&j-m+1<=b)){
continue;
}
if((y<=j&&x-m+1<=i&&i-m+1<=x-m+1&&j-m+1<=y)||(x-m+1<=i-m+1&&y-m+1<=j&&i-m+1<=x&&j<=y)||(b<=y&&a-m+1<=x&&x-m+1<=a-m+1&&y-m+1<=b)||(a-m+1<=x-m+1&&b-m+1<=y&&x-m+1<=a&&y<=b)||(j<=b&&i-m+1<=a-m+1&&a<=i-m+1&&b-m+1<=j)||(b<=j&&a-m+1<=i&&i-m+1<=a-m+1&&j-m+1<=b)){
continue;
}
if((y-m+1<=j&&x<=i&&i-m+1<=x&&j-m+1<=y-m+1)||(x-m+1<=i&&y-m+1<=j-m+1&&i<=x&&j-m+1<=y)||(b-m+1<=y&&a<=x&&x-m+1<=a&&y-m+1<=b-m+1)||(a-m+1<=x&&b-m+1<=y-m+1&&x<=a&&y-m+1<=b)||(j-m+1<=b&&i<=a&&a-m+1<=i&&b-m+1<=j-m+1)||(b-m+1<=j&&a<=i&&i-m+1<=a&&j-m+1<=b-m+1)){
continue;
}
if((y-m+1<=j&&x-m+1<=i&&i-m+1<=x-m+1&&j-m+1<=y-m+1)||(x-m+1<=i-m+1&&y-m+1<=j-m+1&&i-m+1<=x&&j-m+1<=y)||(b-m+1<=y&&a-m+1<=x&&x-m+1<=a-m+1&&y-m+1<=b-m+1)||(a-m+1<=x-m+1&&b-m+1<=y-m+1&&x-m+1<=a&&y-m+1<=b)||(j-m+1<=b&&i-m+1<=a&&a-m+1<=i-m+1&&b-m+1<=j-m+1)||(b-m+1<=j&&a-m+1<=i&&i-m+1<=a-m+1&&j-m+1<=b-m+1)){
continue;
}
ans=max(ans,s[i][j]-s[i-m][j]-s[i][j-m]+s[i-m][j-m]+s[a][b]-s[a-m][b]-s[a][b-m]+s[a-m][b-m]+s[x][y]-s[x][y-m]-s[x-m][y]+s[x-m][y-m]);
}
}
}
}
}
}
cout<<ans<<"\n";
return 0;
}