奇怪的90分
  • 板块P1605 迷宫
  • 楼主2h_xingren
  • 当前回复4
  • 已保存回复4
  • 发布时间2023/9/26 22:53
  • 上次更新2023/11/2 17:55:42
查看原帖
奇怪的90分
1016687
2h_xingren楼主2023/9/26 22:53
#include <iostream>
using namespace std;

int vis[6][6], map[6][6];
//这样提交是90分,#8和#10测试点会出错,如果交换顺序就满分???
//即int map[6][6], vis[6][6];
//测试点下载了一个,本机测试出来没区别
int dx[4]= {0, 0, 1, -1};
int dy[4]= {-1, 1, 0, 0};

int N, M, T;
int SX, SY, FX, FY;
int ans, x, y;

void dfs(int x, int y)

{
	if (x == FX && y == FY)
	{
		ans++;
		return;
	}
	else
	{
		for (int i=0; i<=3; i++)
		{
			if (map[x+dx[i]][y+dy[i]] == 1 && vis[x+dx[i]][y+dy[i]] == 0)
			{
				vis[x][y] = 1;
				dfs(x+dx[i], y+dy[i]);
				vis[x][y] = 0;
			}
		}
	}

}
signed main(void)
{
	cin >> N >> M >> T;
	for (int i=1; i<=N; i++)
	{
		for (int j=1; j<=M; j++)
		{
			map[i][j] = 1;
		}
	}
	cin >> SX >> SY ;
	cin >> FX >> FY;

	for (int i=1; i<=T; i++)
	{
		cin >> x >> y;
		map[x][y] = 0;
	}
	dfs(SX, SY);
	cout << ans;
	return 0;
}
2023/9/26 22:53
加载中...