文章
43
粉丝
0
获赞
56
访问
9.1k
#include<bits/stdc++.h>
using namespace std;
int main(){
int n;
while(cin>>n){
int num[120][120],max=-18000;
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
cin>>num[i][j];
// 这里是每个num项保存的是从矩阵开始到这个项的值的和(并且符合矩阵的特征)
num[i][j]+=num[i][j-1]+num[i-1][j]-num[i-1][j-1];
}
}
// 这部分循环是计算任意矩阵的大小
for(int x1=1;x1<=n;x1++){
for(int x2=x1;x2<=n;x2++){
for(int y1=1;y1<=n;y1++){
for(int y2=y1;y2<=n;y2++){
// 这个公式需要画图推导
int sum=num[x2][y2]-num[x1-1][y2]-num[x2][y1-1]+num[x1-1][y1-1];
if(sum>max){
max=sum;
}
}
}
}
}
cout<<max<<endl;
}
return 0;
}
登录后发布评论
暂无评论,来抢沙发