50pts求条
查看原帖
50pts求条
1165197
Eastern_Leaf楼主2024/11/23 18:00
#include<bits/stdc++.h>
using namespace std;
int r,c;
char ma[120][80];
int dx[4] = {0,1,0,-1};
int dy[4] = {1,0,-1,0};
bool vis[120][80];
int ansx[114514],ansy[114514];
int nxx,nxy;
void dfs(int x,int y,int stp){
    if(x == r&&y == c){
        cout<<1<<' '<<1<<endl;
        for(int i = 1;i<stp;i++){
            cout<<ansx[i]<<' '<<ansy[i]<<'\n';
        }
        exit(0);
    }
    for(int i = 0;i<4;i++){
        nxx = x+dx[i];
        nxy = y+dy[i];
        if(nxx > r||nxy > c||nxx <=0||nxy <= 0){
            continue;
        }
        if(ma[nxx][nxy] == '*'){
            continue;
        }
        ma[nxx][nxy] = '*';
        ansx[stp] = nxx;
        ansy[stp] = nxy;
        dfs(nxx,nxy,stp+1);
        ma[nxx][nxy] = '.';
    }
}
int main(){
    ios::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    cin>>r>>c;
    for(int i = 1;i<=r;i++){
        for(int j = 1;j<=c;j++){
            cin>>ma[i][j];
        }
    }
    vis[1][1] = 1;
    dfs(1,1,1);
    return 0;
}
2024/11/23 18:00
加载中...