帮帮我dalao先生
查看原帖
帮帮我dalao先生
1057197
nobody_here楼主2024/8/7 07:14
#include<bits/stdc++.h>
using namespace std;
char a[202][202];
int n,ay[5]={0,-1,1,0,0},ax[5]={0,0,0,-1,1},m,num=1,s1,s2,e1,e2;
void print(){
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++){
			cout<<a[i][j];
		}
		cout<<endl;
	}
	cout<<endl;
}
int find(int x,int y){
	if(x==e1 && y==e1){
		a[x][y]='#';
		num++;
		cout<<x<<','<<y<<endl<<num<<":";
		find(n,m);
	}
	for(int i=1;i<=4;i++){
		int tx=x+ax[i];
		int ty=y+ay[i];
		if(tx>=0 && ty>=0 && a[tx][ty]=='o' && tx<=n && ty<=m){
			a[tx][ty]='#'; 
			cout<<tx<<','<<ty<<"->";
			find(tx,ty);
		}else{
			a[tx][ty]='#';
			//print();
			find(x,y);
		}
	}
}
int main(){
	cin>>n>>m;
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++){
			cin>>a[i][j];
		}
	}
	cin>>s1>>s2>>e1>>e2;
	cout<<num<<":";
	find(s1,s2);
	return 0;
}

24行的判断一直为false,如有需要,dalao们自行打开31行DEBUG

2024/8/7 07:14
加载中...