求助
查看原帖
求助
672757
封禁用户楼主2023/4/22 09:44
#include<iostream>
#include<string.h>
#include<cstring>
#include<cstdio>
#include<algorithm>
#include<cmath>
#include<time.h>
#include<stdlib.h>
#include<vector>
#include<stack>
#include<ctype.h>
#include<cstring>
using namespace std;
int n,a,b,c,d;
string nn[1005];
void dfs(int i,int j,int s)
{
	if(i<1||j<0||i>n||j>n-1||nn[i][j]=='1')
	{
		return ;
	}
	if(i==c&&j==d)
	{
		cout<<s;
		exit(0);
	}
	s++;
	dfs(i+1,j,s);
	dfs(i-1,j,s);
	dfs(i,j-1,s);
	dfs(i,j+1,s);
}
int main()
{
	cin>>n;
	for(int i=1;i<=n;i++)
	{
		cin>>nn[i];
	}
	cin>>a>>b>>c>>d;
	dfs(a,b,0);
	cout<<-1;
	return 0;
}

第一次

#include<iostream>
#include<string.h>
#include<cstring>
#include<cstdio>
#include<algorithm>
#include<cmath>
#include<time.h>
#include<stdlib.h>
#include<vector>
#include<stack>
#include<ctype.h>
#include<cstring>
using namespace std;
int n,a,b,c,d;
string nn[1005];
void dfs(int x,int y,int s)
{
	if(nn[x][y]=='1'||x<1||y<0||x>n||y>n-1)
	{
		return ;
	}
	if(x==c&&y==d-1)
	{
		cout<<s;
		exit(0);
	}
	s++;
	nn[x][y]='1';
	dfs(x-1,y,s);
	dfs(x,y+1,s);
	dfs(x-1,y,s);
	dfs(x,y+1,s);
 } 
int main()
{
	cin>>n;
	for(int i=1;i<=n;i++)
	{
		cin>>nn[i];
	}
	cin>>a>>b>>c>>d;
	dfs(a,b-1,0);
	cout<<-1;
	return 0;
}

第二次

2023/4/22 09:44
加载中...