P11228 CSP-J组一个很奇怪的问题
  • 板块学术版
  • 楼主a_blue_fool
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/10/29 16:30
  • 上次更新2024/10/29 16:31:05
查看原帖
P11228 CSP-J组一个很奇怪的问题
1046223
a_blue_fool楼主2024/10/29 16:30

本地自己调和洛谷IDE都没问题,一交上去就RE完了

#include <iostream>
#include <cstdio>
#include <cstring>

#define ll long long

using namespace std;
ll n, m, k, x, y, d, T;
ll dx[] = {0, 1, 0, -1}, dy[] = {1, 0, -1, 0};
bool vis[1005][1005], book[1005][1005][5];
char mp[1005][1005];

void solve() {
	memset(vis, 0, sizeof(vis));
	memset(vis, 0, sizeof(book));
	
	cin >> n >> m >> k;
	cin >> x >> y >> d;
	
	for (ll i = 1; i <= n; i++) {
		char s[1005];
		cin >> s;
		for (ll j = 1; j <= m; j++)
			mp[i][j] = s[j-1];
	}
	
	vis[x][y] = true;
	ll ans = 1;
	for (ll i = 1; i <= k; i++) {
		if (book[x][y][d]) {
			break;
		}
		
		book[x][y][d] = true;
		
		ll x1 = x + dx[d], y1 = y + dy[d];
		if (1 <= x1 && x1 <= n && 1 <= y1 && y1 <= m && mp[x1][y1] == '.') {
			x = x1;
			y = y1;
			
			if (!vis[x][y]) {
				ans++;
				vis[x][y] = true;
			}
		}
		else
			d = (d + 1) % 4;
	}
	cout << ans << endl;
}
int main() {	
	cin >> T;
	
	while (T--) {
		solve();
	}
	
	return 0;
}
2024/10/29 16:30
加载中...