暴力枚举解题,包AC的
2026-05-26 18:32:21
发布于:江苏
79阅读
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;
}
喜欢就点个赞吧
要改进版就看评论区吧
全部评论 2
二次改进版本➡️
#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; }2026-05-26 来自 江苏
2太慢!
2026-06-26 来自 浙江
0Look me
2026-06-26 来自 浙江
0
及暴力
#include<bits/stdc++.h> using namespace std; int main(){ ios::sync_with_stdio(false); cin.tie(0); int m,n,h; cin>>m>>n>>h; vector<vector<int>>num(m,vector<int>(n)); for(int i=0;i<m;i++){ for(int j=0;j<n;j++){ cin>>num[i][j]; } } int big=0; for(int i=0;i<=m-3;i++){ for(int j=0;j<=n-3;j++){ if(max({num[i][j],num[i][j+1],num[i][j+2],num[i+1][j],num[i+1][j+1],num[i+1][j+2],num[i+2][j],num[i+2][j+1],num[i+2][j+2]})-min({num[i][j],num[i][j+1],num[i][j+2],num[i+1][j],num[i+1][j+1],num[i+1][j+2],num[i+2][j],num[i+2][j+1],num[i+2][j+2]})<=h){ big=max(big,num[i][j]+num[i][j+1]+num[i][j+2]+num[i+1][j]+num[i+1][j+1]+num[i+1][j+2]+num[i+2][j]+num[i+2][j+1]+num[i+2][j+2]); } } } cout<<big<<endl; }2026-06-26 来自 浙江
0












有帮助,赞一个