比赛 |
国庆欢乐赛3 |
评测结果 |
WTTTT |
题目名称 |
不重叠正方形 |
最终得分 |
0 |
用户昵称 |
彭欣越 |
运行时间 |
8.003 s |
代码语言 |
C++ |
内存使用 |
8.98 MiB |
提交时间 |
2025-10-05 11:58:19 |
显示代码纯文本
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1010;
int n,m,a[N][N],mk[N][N];
ll ans;
void dfs (int idx,ll sum) {
//cout << sum <<endl;
if (idx>3) {
ans=max(ans,sum);
return;
}
for (int i=1;i<=n;i++) {
for (int j=1;j<=n;j++) {
if (mk[i][j]||i+m-1>n||j+m-1>n) continue;
ll t=0;
for (int l=i;l<=i+m-1;l++) {
for (int r=j;r<=j+m-1;r++) {
mk[l][r]=1;
t+=a[l][r];
}
}
dfs(idx+1,sum+t);
for (int l=i;l<=i+m-1;l++) {
for (int r=j;r<=j+m-1;r++) {
mk[l][r]=0;
}
}
}
}
}
int 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];
}
}
dfs(1,0);
cout << ans <<endl;
return 0;
}