求助!
查看原帖
求助!
647547
doudou0725楼主2024/6/20 16:21

下载样例对了,但评测机显示wa

#include<bits/stdc++.h>
using namespace std;
char a[105][105];
int n;
bool vis[105][105];
vector<int> x,y;
string ans="yizhong";
int q[8][2]={{0,1},{1,0},{0,-1},{-1,0},{1,1},{-1,1},{-1,-1},{1,-1}};
int dfs(int nx,int ny,int l,int f){
	if(l>6){
		return 1;
	}
	int sx=nx+q[f][0],sy=ny+q[f][1];
	if(nx<1||nx>n||ny<1||ny>n)return 0;
	if(a[nx][ny]==ans[l]){
		int lin=dfs(sx,sy,l+1,f);
		if(lin==1){
			vis[nx][ny]=lin;
		}
		
		return lin;
	}
}
int main(){
	cin>>n;
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++){
			cin>>a[i][j];
			if(a[i][j]=='y'){
				x.push_back(i);
				y.push_back(j);
			}
		}
	}
	int len=x.size();
	for(int i=0;i<len;i++)
		for(int j=0;j<8;j++)
			dfs(x[i],y[i],0,j);
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++){
			if(vis[i][j]==1){
				cout<<a[i][j];
			}else{
				cout<<"*";
			}
		}
		cout<<endl;
	}
	return 0;
} 
2024/6/20 16:21
加载中...