全部评论 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
  • 及暴力

    #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
暂无数据

提交答案之后,这里将显示提交结果~

首页