90分求助
查看原帖
90分求助
786806
yu1128_AKIOI楼主2023/12/15 15:00
#include<iostream>
#include<cstring>
#include<cstdlib>
using namespace std;
int n,m,a[123][125],kg,q,w,e,r,v[105][105],xx[]={-1,1,0,0},yy[]={0,0,1,-1},ans;
int d[100005],l[100005];
void f(int x,int y){
    if(x==n&&y==m){
        cout<<1<<" "<<1<<endl;
        for(int i=1;i<=kg;i++){
            cout<<d[i]<<" "<<l[i]<<endl;
        }
        ans=1;
        exit(0);
    }
    for(int i=0;i<4;i++){
        int dx=x+xx[i],dy=y+yy[i];
        if(dx>=1&&dx<=n&&dy>=1&&dy<=m&&!a[dx][dy]&&!v[dx][dy]){
            ++kg;
            d[kg]=dx;
            l[kg]=dy;
            v[dx][dy]=1;
            f(dx,dy);
            l[kg]=0;
            d[kg]=0;
            --kg;
        }
    }
}
int main(){
    cin>>n>>m;
    for(int i=1;i<=n;i++){
        for(int j=1;j<=m;j++){
            char x;
            cin>>x;
            if(x=='.') a[i][j]=0;
            else {a[i][j]=1;}
        }
    }
    f(1,1);
    if(!ans) return 0;
    return 0;
}
2023/12/15 15:00
加载中...