CSP-J T2题解
2025-08-15 21:16:50
发布于:上海
31阅读
0回复
0点赞
直接按照题意模拟即可,上代码
#include <bits/stdc++.h>
using namespace std;
int dir[4][2] {{0, 1}, {1, 0}, {0, -1}, {-1, 0}};
void solve() {
int n, m, k;
cin >> n >> m >> k;
int lx, ly, ld;
cin >> lx >> ly >> ld;
int cnt = 1;
vector <vector <char> > a(n + 1, vector <char> (m + 1));
vector <vector <bool> > vis(n + 1, vector <bool> (m + 1, 0));
vis[lx][ly] = 1;
for (int i = 1; i <= n; i++) for (int j = 1; j <= m; j++) cin >> a[i][j];
for (int i = 1; i <= k; i++) {
int nx = lx + dir[ld][0], ny = ly + dir[ld][1];
if (nx >= 1 && nx <= n && ny >= 1 && ny <= m && a[nx][ny] != 'x') {
if (!vis[nx][ny]) vis[nx][ny] = 1, cnt++;
lx = nx, ly = ny;
} else ld = (ld + 1) % 4;
} cout << cnt << endl;
}
int main() {
int t;
cin >> t;
while (t--) solve();
return 0;
}
声明:本题解纯手打,无 AI!
全部评论 1
d
2025-08-15 来自 上海
0
有帮助,赞一个