暴力枚举解题,包AC的
2026-05-26 18:32:21
发布于:江苏
6阅读
0回复
0点赞
因为我没有学动态数组,所以就用暴力枚举做了一个,包AC,有bug请各位大佬指出
#include<bits/stdc++.h>
using namespace std;
int main()
{
int a[1001][1001],m,n,h,sum[1000000];
cin>>m>>n>>h;
for(int i = 0;i<m;i++){
for(int j = 0;j<n;j++){
cin>>a[i][j];
}
}
int k = 0;
for(int i = 0;i<m-2;i++){
for(int j = 0;j<n-2;j++){
if(max(a[i][j],max(a[i][j+1],max(a[i][j+2],max(a[i+1][j],max(a[i+1][j+1],
max(a[i+1][j+2],max(a[i+2][j],max(a[i+2][j+1],a[i+2][j+2]))))))))
-min(a[i][j],min(a[i][j+1],min(a[i][j+2],min(a[i+1][j],min(a[i+1][j+1],
min(a[i+1][j+2],min(a[i+2][j],min(a[i+2][j+1],a[i+2][j+2]))))))))<=h){
sum[k] = a[i][j]+a[i][j+1]+a[i][j+2]+a[i+1][j]+a[i+1][j+1]+a[i+1][j+2]+a[i+2][j]+a[i+2][j+1]+a[i+2][j+2];
k++;
}
}
}
sort(sum,sum+k);
cout<<sum[k-1];
return 0;
}
喜欢就点个赞吧
要改进版就看评论区吧
全部评论 1
二次改进版本➡️
#include<bits/stdc++.h> using namespace std; int a[1001][1001],m,n,h,sum[1000000]; bool f(int a1,int b1){ int max_n = 0; int min_n = 1000000000; for(int i= 0;i<3;i++){ for(int j = 0;j<3;j++){ max_n = max(a[a1+i][b1+j],max_n); min_n = min(a[a1+i][b1+j],min_n); } } return max_n-min_n<=h; } int main() { cin>>m>>n>>h; for(int i = 0;i<m;i++){ for(int j = 0;j<n;j++){ cin>>a[i][j]; } } int k = 0; for(int i = 0;i<m-2;i++){ for(int j = 0;j<n-2;j++){ if(f(i,j)){ sum[k] = a[i][j]+a[i][j+1]+a[i][j+2]+a[i+1][j]+a[i+1][j+1]+a[i+1][j+2]+a[i+2][j]+a[i+2][j+1]+a[i+2][j+2]; k++; } } } sort(sum,sum+k); cout<<sum[k-1]; return 0; }3天前 来自 江苏
1







有帮助,赞一个