求助,0分
查看原帖
求助,0分
615273
pichangqian楼主2022/2/15 23:23
#include<stdio.h>
char a[102][102],b[102][102];
const char c[8]="yizhong";
int v[8][2]={{-1,-1},{-1,0},{-1,1},{0,1},{1,1},{1,0},{1,-1},{0,-1}};
struct node{
	int x,y;
}p[7];
void DFS(int x,int y,int k,int sum)
{
	if(sum==7)
	{
		int i;
		for(i=0;i<7;i++) b[p[i].x][p[i].y]='*';
	}
	else
	{
		int dx=x+v[k][0],dy=y+v[k][1];
		if(a[dx][dy]==c[sum+1] || sum==6)
		{
			p[sum].x=x,p[sum].y=y;
			DFS(dx,dy,k,sum+1);
		}
	}
}
int main()
{
	int n;
	scanf("%d",&n);
	int i,j,k;
	getchar();
	for(i=1;i<=n;i++)
	{
		for(j=1;j<=n;j++) a[i][j]=getchar();
		getchar();
	}
	for(i=1;i<=n;i++)
		for(j=1;j<=n;j++)
		if(a[i][j]=='y')	
		{
			for(k=0;k<8;k++)
			if(a[i+v[k][0]][j+v[k][1]]=='i') DFS(i,j,k,0);
		}
	for(i=1;i<=n;i++)
	{
		for(j=1;j<=n;j++)
		{
			if(b[i][j]=='*') printf("%c",a[i][j]);
			else printf("*");
		}
		printf("\n");
	}
	return 0;	
} ```c

2022/2/15 23:23
加载中...