求调,样例过了,就是0分
查看原帖
求调,样例过了,就是0分
594310
fuck__luogu楼主2023/8/13 10:28
#include<bits/stdc++.h>
using namespace std;
int dx[] = {0,0,1,-1,1,1,-1,-1},dy[] = {-1,1,0,0,-1,1,-1,1};
char a[105][105],n;
int vis[105][105];
char s[] = "yizhong";
int dfs(int x,int y,int step,int k) {
	int xx = x+dx[k],yy = y+dy[k];
	if(xx>0&&xx<=n&&yy>0&&yy<=n&&a[xx][yy]==s[step+1]) {
		if(step == 5) {
			vis[xx][yy]++;
			return 1;
		}
		int l = dfs(xx,yy,step+1,k);
		if(l) {
			vis[xx][yy]++;
			return 1;
		}
	}
	return 0;
}
int main() {
	scanf("%d",&n);
	for(int i = 1; i <= n; i++) {
		for(int j = 0; j <= n; j++) {
			scanf("%c",&a[i][j]);
		}
	}
	for(int i = 1; i <= n; i++){
		for(int j = 1; j <= n; j++){
			if(a[i][j] == 'y') {
				for(int k = 0; k < 8; k++){
					int l = dfs(i,j,0,k);
					if(l) vis[i][j]++;
				}
			}
		}
	}
	for(int i = 1; i <= n; i++) {
		for(int j = 1; j <= n; j++) {
			if(vis[i][j]) printf("%c",a[i][j]);
			else printf("*");
		}
		if(i!=n) printf("\n");
	}
	return 0;
}
2023/8/13 10:28
加载中...