请问我这个代码算哪种搜索啊?
  • 板块灌水区
  • 楼主wnc0123456789
  • 当前回复7
  • 已保存回复7
  • 发布时间2023/7/8 15:26
  • 上次更新2023/11/3 11:03:01
查看原帖
请问我这个代码算哪种搜索啊?
608869
wnc0123456789楼主2023/7/8 15:26
#include<bits/stdc++.h>
using namespace std;
const int N=110;
char g[N][N];
bool st[N][N];
int n;
int dx[]={1,1,0,-1,-1,-1,0,1},dy[]={0,-1,-1,-1,0,1,1,1};
char z[]={'y','i','z','h','o','n','g'};
void bfs(int x,int y,int t){//横、纵坐标及方向; 
	int a=x,b=y,cnt=0;
	for(int i=0;i<7;i++){
		if(g[a][b]==z[i])cnt++;
		a+=dx[t],b+=dy[t];
	}
	a=x;b=y;
	if(cnt==7){
		for(int i=0;i<7;i++){
			st[a][b]=1;
			a+=dx[t],b+=dy[t];
		}
	}
}
int main(){
	cin>>n;
	for(int i=0;i<n;i++){
		for(int j=0;j<n;j++){
			cin>>g[i][j];
		}
	}
	for(int i=0;i<n;i++){
		for(int j=0;j<n;j++){
			if(g[i][j]=='y'){
				for(int k=0;k<8;k++){
					bfs(i,j,k);
				}
			}
		}
	}
	for(int i=0;i<n;i++){
		for(int j=0;j<n;j++){
			if(st[i][j]==1)cout<<g[i][j];
			else cout<<"*";
		}
		cout<<endl;
	}
	return 0;
}
2023/7/8 15:26
加载中...