会的前缀和,不会的暴力枚举
2026-02-10 10:07:26
发布于:四川
8阅读
0回复
0点赞
前缀和搞定
#include <bits/stdc++.h>
using namespace std;
int a[100][100],sum[100][100];
int main(){
int n,m;
cin>>n>>m;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
cin>>a[i][j];
//二维前缀和输入
sum[i][j]=sum[i-1][j]+sum[i][j-1]-sum[i-1][j-1]+a[i][j];
}
}
int mx=0,s=0;
for(int x1=1;x1<=n;x1++){
for(int y1=1;y1<=m;y1++){
for(int x2=x1;x2<=n;x2++){
for(int y2=1;y2<=m;y2++){
//s=sum[x1][y1]~sum[x2][y2]
s=sum[x2][y2]-sum[x2][y1-1]-sum[x1-1][y2]+sum[x1-1][y1-1];
if((y2-y1+1)*(x2-x1+1)==s){
//三目运算符
mx=(mx<s?s:mx);
}
}
}
}
}
cout<<mx;
return 0;
}
全部评论 2

1周前 来自 四川
066666666
1周前 来自 四川
0








有帮助,赞一个