全错,求大佬调
查看原帖
全错,求大佬调
1340267
yangzhiyuan666楼主2024/12/23 20:54
#include<bits/stdc++.h>
using namespace std;
int r,c,cnt=0;
long long rc[60][60];
void dfs(int x,int y) {
	if(x==c||y==r) {
		return;
	} else {
		if(x-1>0
		        &&rc[x-1][y]>rc[x+1][y]
		        &&rc[x-1][y]>rc[x][y-1]&&
		        rc[x-1][y]>rc[x][y+1]) { //下
			//cout<<rc[x][y]<<endl;
			rc[x][y]=0;
			dfs(x-1,y);
			cnt++;
		} else if(x+1<=c&&rc[x+1][y]>rc[x][y-1]
		          &&rc[x+1][y]>rc[x][y+1]
		         ) {
			//cout<<rc[x][y]<<endl;
			rc[x][y]=0;
			dfs(x+1,y);
			cnt++;
		}//上
		else if(y-1>0&&rc[x][y-1]>rc[x][y+1]) {
			//cout<<rc[x][y]<<endl;
			rc[x][y]=0;
			dfs(x,y-1);
			cnt++;
		}//左
		else if(y+1<=r) { //右
			//cout<<rc[x][y]<<endl;
			rc[x][y]=0;
			dfs(x,y+1);
			cnt++;
		}
	}
}
int main() {
	cin>>r>>c;
	for(int i=1; i<=r; i++) {
		for(int k=1; k<=c; k++) {
			cin>>rc[i][k];
		}
	}
	dfs(1,1);
	cout<<cnt;
	return 0;
}

2024/12/23 20:54
加载中...