排兵布阵题解:
2026-02-10 10:07:49
发布于:四川
4阅读
0回复
0点赞
排兵布阵
#include<bits/stdc++.h>
using namespace std;
const int N=2e2+10;
int a[N][N];
int main(){
int n,m,i,j,mx=0,x;
cin >> n >> m;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
cin >> x;
a[i][j]=a[i-1][j]+a[i][j-1]-a[i-1][j-1]+x;//前缀和公式
}
}
int x1,y1,x2,y2;
for(int x1=1;x1<=n;x1++){
for(int y1=1;y1<=m;y1++){
for(int x2=x1;x2<=n;x2++){
for(int y2=y1;y2<=m;y2++){
if((x2-x1+1)*(y2-y1+1)==a[x2][y2]-a[x2][y1-1]-a[x1-1][y2]+a[x1-1][y1-1]){//前缀和公式
mx=max((x2-x1+1)*(y2-y1+1),mx);//找最大
}
}
}
}
}cout << mx;
return 0;
}
这里空空如也






有帮助,赞一个