请问还有哪里不足呢?为什么会是40分?也不TLE和MLE啊!
查看原帖
请问还有哪里不足呢?为什么会是40分?也不TLE和MLE啊!
286752
h1910819075楼主2021/3/14 15:11

求助,大佬们,码风清奇,见谅!

#include<bits/stdc++.h>
using namespace std;
const int N= 200;
char mp[N][N];
int vis[N][N];
int d[][2]={{1,0},{-1,0},{0,1},{0,-1}};
int n,m,t,sx,sy,ex,ey,cnt=0;

void dfs(int x,int y,int len)
{
	if(len>t) return ;
	if(x==ex&&y==ey&&len==t)
	{
		cnt++;
		return ;
	}
	
	for(int i=0;i<4;i++)
	{
		int dx=x+d[i][0];
		int dy=y+d[i][1];
		if(dx>=1&&dx<=n&&dy>=1&&dy<=m&&!vis[dx][dy]&&mp[dx][dy]!='*')
		{
			vis[dx][dy]=1;
			dfs(dx,dy,len+1);
			vis[dx][dy]=0;
		}
	}
}

int main()
{
	cin>>n>>m>>t;
	for(int i=1;i<=n;i++)
		scanf("%s",mp[i]+1);
	cin>>sx>>sy>>ex>>ey;
	dfs(sx,sy,0);
	printf("%d\n",cnt);
	return 0;
}
2021/3/14 15:11
加载中...