蒟蒻求助!!!!!
  • 板块P1189 SEARCH
  • 楼主NOI109_bjh
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/10/6 22:26
  • 上次更新2024/10/7 09:33:54
查看原帖
蒟蒻求助!!!!!
1283045
NOI109_bjh楼主2024/10/6 22:26

dalao救救,代码TLE+RE,整个人精神都要不正常了,查不出一点BUG

#include<bits/stdc++.h>
#define int long long
#define ci const int
#define elif else if

using namespace std;

ci e=51,E=1e3+10;
int n,m,k,stx,sty,vis[E][e][e],b[E];
char a[e][e];

void print(){
	for(int i=1;i<=n;i++)cout<<a[i]+1<<'\n';
}

void dfs(int x,int y,int cou){
	if(x<1||x>n||y<1||y>m||a[x][y]=='X'||vis[cou][x][y])return;
	vis[cou][x][y]=1;
    cout<<x<<' '<<y<<endl;
	if(cou==k+1){
		a[x][y]='*';
        return;
    }
    int i=0;
	while(++i){
		if(b[cou]==1){
            if(x-i>n||a[x-i][y]=='X')return;
            dfs(x-i,y,cou+1);
        }
		elif(b[cou]==2){
            if(x+i<1||a[x+i][y]=='X')return;
            dfs(x+i,y,cou+1);
        }
		elif(b[cou]==3){
            if(y+i>m||a[x][y+i]=='X')return;
            dfs(x,y+i,cou+1);
        }
		else{
            if(y-i<1||a[x][y-i]=='X')return;
            dfs(x,y-i,cou+1);
        }
	}
}

signed main(){
	ios::sync_with_stdio(0),
	cin.tie(0),cout.tie(0);
	
	cin>>n>>m;
	for(int i=1;i<=n;i++)cin>>a[i]+1;
	cin>>k;
	for(int i=1;i<=k;i++){
        string x;
        cin>>x;
        if(x=="NORTH")b[i]=1;
        elif(x=="SOUTH")b[i]=2;
        elif(x=="EAST")b[i]=3;
        else b[i]=4;
    }
	
	for(int i=1;i<=n;i++)
		for(int j=1;j<=m;j++)
			if(a[i][j]=='*')stx=i,sty=j,a[i][j]='.';
            
	
    //cout<<cra<<' '<<crb<<endl;
	dfs(stx,sty,1);
	print();
	
	return 0;
}
2024/10/6 22:26
加载中...