WA 60分求调
查看原帖
WA 60分求调
1426729
huangyiheng666楼主2024/11/4 18:56

CCF和洛谷上的给出数据都过, 但都60pts, 测试点5 7 8 10挂。

#include <bits/stdc++.h>
using namespace std;

const int N = 1e3 + 5;
int n, m, k;
bool used[N][N], z[N][N];
int x, y, d;
char ch;

int go() {
	memset(used, 0, sizeof used);
	int res = 1;
	used[x][y] = true;
	for (int i = 1; i <= k; i++) {
		int tx = x, ty = y;
		if(d == 0)ty ++;
		if(d == 1)tx ++;
		if(d == 2)ty --;
		if(d == 3)tx --;
		if(z[tx][ty]) x = tx, y = ty;
		else d = (d + 1) % 4;
		if(!used[x][y])res ++;
		used[x][y] = true;
	}
	return res;
}

int main() {
	int T;
	scanf("%d", &T);
	while(T --) {
		scanf("%d%d%d", &n, &m, &k);
		scanf("%d%d%d", &x, &y, &d);
		for (int i = 1; i <= n; i++) {
			scanf("%c", &ch);
			for (int j = 1; j <= m; j++) {
				scanf("%c", &ch);
				z[i][j] = ch == '.';
			}
		}
		printf("%d\n", go());
	}
	return 0;
}
2024/11/4 18:56
加载中...