不对啊,这题怎么有点眼熟啊,不对不对,奥奥奥,我好像想起来了,这道题是我们刚刚学过的搜索题,是的,我说对了,这就是一道极简单的简称DFS的深搜算法!!!那也不对啊,那我为什么会这么的,眼熟!!!,哦哦哦,我又想起来了,这道题!是我昨天的二十四个小时后的1440秒前的1440000毫秒,天呐,我竟然回忆起来了,原来,原来,它就是!!!我一分钟前刚出的题啊,真的是太不对劲了!!!注意,不知不觉间,你又浪费了半分钟时间,而且我没猜错的话,你现在,应该正在看我的题解吧,看了这么久,怎么还不去做题!!!是不是在等代码呢,哈哈哈我这么善的人,怎么会不提供代码呢,上代码!!!


#include <bits/stdc++.h>
#define int long long

using namespace std;
int n, m, startx, starty, q, p;
int dx[5]={0,0,0,-1,1};
int dy[5]={0,-1,1,0,0};
char a[110][110]; 
int vis[110][110]={0};
int ans = 0;
void dfs(int x, int y)
{
	if(x==p&&y==q)
	{
		ans++;
	}
	for(int i = 1; i <= 4; i++)
	{
		if(a[x+dx[i]][y+dy[i]]=='.'&&vis[x+dx[i]][y+dy[i]]==0)
		{
			vis[x+dx[i]][y+dy[i]]=1;
			dfs(x+dx[i], y+dy[i]);
			vis[x+dx[i]][y+dy[i]]=0;	
		}
	}
}
signed main()
{
	cin >> n >> m >> startx >> starty >> p >> q;
	if(startx==p&&starty==q)
	{
		cout << 0;
		return 0;
	 } 
	for(int i = 1; i <= n; i++)
	{
		for(int j = 1; j <= m; j++)
		{
			cin >> a[i][j];
		} 
	}
	dfs(startx, starty);
	cout << ans;
	return 0;
}

我也不确保一定对啊,毕竟我也第一次写这种题,但我出的这道题是能AC的

0 comments

No comments so far...

Information

ID
1795
Time
1000ms
Memory
256MiB
Difficulty
8
Tags
# Submissions
13
Accepted
6
Uploaded By