社区讨论
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 条回复,欢迎继续交流。
正在加载回复...