蒟蒻求调
查看原帖
蒟蒻求调
739307
All_Failed_OI_Cici楼主2024/7/15 19:49

提交记录

代码:

话说这道题就不能不深搜吗

#include<bits/stdc++.h>
using namespace std;
const int N=10;
vector<vector<bool> >b;
vector<bool> c;
vector<string> s;
string str;
int n;
int dx[8]={-1,-1,0,1,1,1,0,-1};
int dy[8]={0,1,1,1,0,-1,-1,-1};
void judge(int i,int j,int k){//i: x;j: y;k: dx/y[k]
	if(i+dx[k]>=0&&i+dx[k]<n&&j+dy[k]>=0&&j+dy[k]<n&&i+dx[k]*7<n&&i+dx[k]*7>=0&&j+dy[k]*7<n&&j+dy[k]*7>=0){
		if(s[i+dx[k]][j+dy[k]]=='y'&&s[i+dx[k]*2][j+dy[k]*2]=='i'&&s[i+dx[k]*3][j+dy[k]*3]=='z'&&s[i+dx[k]*4][j+dy[k]*4]=='h'&&s[i+dx[k]*5][j+dy[k]*5]=='o'&&s[i+dx[k]*6][j+dy[k]*6]=='n'&&s[i+dx[k]*7][j+dy[k]*7]=='g'){
			b[i+dx[k]][j+dy[k]]=true;
			b[i+dx[k]*2][j+dy[k]*2]=true;
			b[i+dx[k]*3][j+dy[k]*3]=true;
			b[i+dx[k]*4][j+dy[k]*4]=true;
			b[i+dx[k]*5][j+dy[k]*5]=true;
			b[i+dx[k]*6][j+dy[k]*6]=true;
			b[i+dx[k]*7][j+dy[k]*7]=true;
		}
	}
	return;
}
void search(){
	for(int i=0;i<8;i++){
		for(int j=0;j<n;j++){
			for(int k=0;k<n;k++){
				if(s[i][j]!='y') continue;
				judge(j,k,i);
			}
		}
	}
	return;
}
int main(){
	cin>>n;
	for(int i=0;i<n;i++){
		cin>>str;
		s.push_back(str);
		for(int j=0;j<n;j++){
			c.push_back(false);
		}
		b.push_back(c);
		c.clear();
	}
	search();
	for(int i=0;i<n;i++){
		for(int j=0;j<n;j++){
			if(b[i][j]==false) cout<<'*';
			else cout<<s[i][j];
		}
		cout<<endl;
	}
	return 0;
}

谢谢!

2024/7/15 19:49
加载中...