1 条题解

  • 1
    @ 2026-9-4 23:22:25
    #include<bits/stdc++.h>
    using namespace std;
    int n,m,a[1500][1500],cnt;
    bool check(int x,int y){
    	if(x>1&&y>1){
    		if(a[x][y]>a[x-1][y-1]) return false;
    	}
    	if(x>1){
    		if(a[x][y]>a[x-1][y]) return false;
    	}
    	if(x>1&&y<m){
    		if(a[x][y]>a[x-1][y+1]) return false;
    	}
    	if(y>1){
    		if(a[x][y]>a[x][y-1]) return false;
    	}
    	if(y<m){
    		if(a[x][y]>a[x][y+1]) return false;
    	}
    	if(y>1&&x<n){
    		if(a[x][y]>a[x+1][y-1]) return false;
    	}
    	if(x<n){
    		if(a[x][y]>a[x+1][y]) return false;
    	}
    	if(x<n&&y<m){
    		if(a[x][y]>a[x+1][y+1]) return false;
    	}
    	return true;
    }
    int main(){
    	cin>>n>>m;
    	for(int i=1;i<=n;i++){
    		for(int j=1;j<=m;j++){
    			cin>>a[i][j];
    		}
    	}
    	for(int i=1;i<=n;i++){
    		for(int j=1;j<=m;j++){
    			if(check(i,j)) cnt++;
    		}
    	}
    	cout<<cnt;
        return 0; 
    }
    //包包包AC
    

    信息

    ID
    3601
    时间
    1000ms
    内存
    256MiB
    难度
    10
    标签
    递交数
    3
    已通过
    3
    上传者