为什么#5自己的输出和测试点输出一毛一样却不对?
  • 板块P1101 单词方阵
  • 楼主dtw35l
  • 当前回复3
  • 已保存回复3
  • 发布时间2022/8/24 20:47
  • 上次更新2023/10/27 13:49:05
查看原帖
为什么#5自己的输出和测试点输出一毛一样却不对?
559969
dtw35l楼主2022/8/24 20:47

为什么#5自己的输出和测试点输出一毛一样却不对?

我代码:

#include <cstdio>


char s[105][105], yizhong[] = {"yizhong"};
bool a[105][105];
int n, dx[] = {1, 0, -1, 0, 1, -1, 1, -1},
              dy[] = {0, 1, 0, -1, 1, -1, -1, 1};
bool dfs(int x, int y, int tot, int dix, int diy) {
	if (tot == 7)
		return true;
	if (0 > x || x >= n || 0 > y || y >= n)
		return false;
	if (s[x][y] != yizhong[tot])
		return false;
	if (dfs(x + dix, y + diy, tot + 1, dix, diy))
		a[x][y] = true;
}
int main() {
	scanf("%d", &n);
	for (int i = 0; i < n; i++) {
		scanf("%s", s[i]);
	}

	for (int i = 0; i < n; i++) {
		for (int j = 0; j < n; j++) {
			if (s[i][j] == 'y') {
				for (int k = 0; k < n; k++)
					dfs(i, j, 0, dx[k], dy[k]);
			}
		}
	}


	for (int i = 0; i < n; i++) {
		for (int j = 0; j < n; j++) {
			if (a[i][j])
				putchar(s[i][j]);
			else
				putchar('*');
		}
		putchar('\n');
	}
	return 0;
}

为了找不同我写了个比较程序

#include <cstdio>


char s1[105][105], s2[105][105];

int main() {
	freopen("out.txt", "r", stdin);
	
	for (int i = 0; i < 100; i++)
		scanf("%s", s1[i]);
		
	freopen("P1101_5.out", "r", stdin);
	for (int i = 0; i < 100; i++)
		scanf("%s", s2[i]);
		
	for (int i = 0; i < 100; i++) {
		for (int j = 0; j < 100; j++) {
			if (s1[i][j] != s2[i][j])
				puts("NO!!!");
		}
	}
	return 0;
}

发现一毛一样(样例#5太大了放不下)

2022/8/24 20:47
加载中...