萌新求助,DFS 30分,7个点WA
查看原帖
萌新求助,DFS 30分,7个点WA
509923
SongShouqian楼主2022/7/20 17:47
#include<bits/stdc++.h>
using namespace std;
int n,m,t,r1,c1,r2,c2,ans=0;
char a[105][105];
int dx[4]={1,-1,0,0},dy[4]={0,0,1,-1};
void dfs(int x,int y,int s)
{
	if(x==r2&&y==c2)
	{
		ans++;
	}
	if(s>=t||abs(x-r2)+abs(y-c2)>t-s)
	{
		return;
	}
	int p,q;
	for(int i=0;i<4;i++)
	{
		p=x+dx[i];
		q=y+dy[i];
		if(p>0&&p<=n&&q>0&&q<=m&&a[p][q]=='.')
		{
			dfs(p,q,s+1);
		}
	}
}
int main()
{
	scanf("%d%d%d",&n,&m,&t);
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=m;j++)
		{
			cin>>a[i][j];
		}
	}
	scanf("%d%d%d%d",&r1,&c1,&r2,&c2);
	dfs(r1,c1,0);
	printf("%d",ans);
	return 0;
}

评测结果

2022/7/20 17:47
加载中...