社区讨论

50分求调

P11228[CSP-J 2024] 地图探险参与者 2已保存回复 1

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
1 条
当前快照
1 份
快照标识符
@mhj9cum3
此快照首次捕获于
2025/11/03 22:51
4 个月前
此快照最后确认于
2025/11/03 22:51
4 个月前
查看原帖
CPP
#include<iostream>
#include<cstring>
using namespace std;
int t,d,x,y,n,m,k;
int dx[4] = { 0,1,0,-1 }, dy[4] = { 1,0,-1,0 };
char map[1010][1010];
bool vis[1010][1010];
int main()
{
	cin >> t;
	while (t--)
	{
		cin >> n >> m >> k >> x >> y >> d;
		for (int i = 1; i <= n; i++)
			for (int j = 1; j <= m; j++)
				cin >> map[i][j];
		int sum = 1;
		while (k--)
		{
			int nx = x + dx[d];
			int ny = y + dy[d];
			if (nx < 1 || nx > n || ny<1 || ny > m)
			{
				d = (d + 1) % 4;
				continue;
			}
			if (map[nx][ny] == 'x')
			{
				d = (d + 1) % 4;
				continue;
			}
			if (!vis[nx][ny]) sum++;
			x = nx;
			y = ny;
			vis[nx][ny] = 1;
		}
		memset(map, 0, sizeof(map));
		memset(vis, 0, sizeof(vis));
		cout << sum << endl;
	}


	return 0;
}

回复

1 条回复,欢迎继续交流。

正在加载回复...