悬赏关注
  • 板块灌水区
  • 楼主hkl99
  • 当前回复1
  • 已保存回复1
  • 发布时间2024/10/21 08:51
  • 上次更新2024/10/21 09:24:28
查看原帖
悬赏关注
770439
hkl99楼主2024/10/21 08:51

题目

这代码哪里错了

样例都对,加上去全WA,下载下来样例,结果是对的,用洛谷的IDE输出也是对的,真是搞不懂

代码:

#include<bits/stdc++.h>
using namespace std;
int n,fx[8][2]= {{1,0},{1,1},{0,1},{-1,-1},{-1,0},{0,-1},{-1,1},{1,-1}};
char a[1010][1010],b[8]= {'y','i','z','h','o','n','g'};
bool c[1010][1010];
bool dfs(int x,int y,int f,int dep) {
	if(dep==7) {
		return true;
	} else {
		if(a[x+fx[f][0]][y+fx[f][1]]==b[dep]) {
			if(dfs(x+fx[f][0],y+fx[f][1],f,dep+1)&&c[x+fx[f][0]][y+fx[f][1]]==false) {
				c[x+fx[f][0]][y+fx[f][1]]=true;
				return true;
			} else {
				return false;
			}
		} else {
			return false;
		}
	}

}
int main() {
	scanf("%d",&n);
	for(int i=1; i<=n; i++) {
		for(int j=1; j<=n; j++) {
			char x;
			scanf("%c",&x);
			if(x=='\n') {
				scanf("%c",&x);
			}
			a[i][j]=x;
		}
	}
	for(int i=1; i<=n; i++) {
		for(int j=1; j<=n; j++) {
			if(c[i][j]==false) {
				if(a[i][j]=='y') {
					for(int k=0; k<8; k++) {
						if(dfs(i,j,k,1)) {
							c[i][j]=true;
						}
					}
				}
			}
		}
	}
	for(int i=1; i<=n; i++) {
		for(int j=1; j<=n; j++) {
			if(c[i][j]==false) {
				printf("*");
			} else {
				printf("%c",a[i][j]);
			}
		}
		printf("\n");
	}
	return 0;
}

2024/10/21 08:51
加载中...