可能出现了某些奇怪的错误。。。?
  • 板块P1189 SEARCH
  • 楼主pencil
  • 当前回复0
  • 已保存回复0
  • 发布时间2021/8/12 21:20
  • 上次更新2023/11/4 10:52:06
查看原帖
可能出现了某些奇怪的错误。。。?
137723
pencil楼主2021/8/12 21:20
#include<bits/stdc++.h>
#define itn int
using namespace std;
int n,m,l;
char a[60][60];
string b[1010];
void dfs(int sx,int sy,int bu) {
	if(sx<1||sx>m||sy<1||sy>n||a[sx][sy]=='X')
		return;
	if(bu>l) {
		a[sx][sy]='*';
		return;
	}
	int xf=0,yf=0;
	bool xw;
	for(int i=bu; i<=l; i++) {
		if(b[i]=="NORTH")
			yf=1;
		if(b[i]=="SOUTH")
			yf=-1;
		if(b[i]=="WEST")
			xf=-1,xw=1;
		if(b[i]=="EAST")
			xf=1,xw=1;
		if(xw) {for(int i2=sx+xf; i2>0&&i2<=m; i2+=xf)
				dfs(i2,sy,bu+1);
			
		} else {
			for(int i2=sy+yf; i2>0&&i2<=n; i2+=yf)
				dfs(sx,i2,bu+1);

		}
	}
}
int main() {
	int x1,y1;
	cin>>n>>m;
	for(int i2=1; i2<=n; i2++) {
		for(int i=1; i<=m; i++) {
			cin>>a[i][i2];
			if(a[i][i2]=='*') {
				x1=i;
				y1=i2;
				a[i][i2]='.';
			}
		}
	}
	cout<<x1<<y1;
	cin>>l;
	for(int i=1; i<=l; i++)
		cin>>b[i];
	dfs(x1,y1,1);
	for(int i2=1; i2<=n; i2++) {
		for(int i=1; i<=m; i++) {
			cout<<a[i][i2];
		}
		cout<<endl;
	}
	return 0;
}
2021/8/12 21:20
加载中...