全部评论 3

  • #include<bits/stdc++.h>
    using namespace std;
    char mp[30][30];
    int n,m,ans=2e9,sx,sy,ex,ey;
    int dirx[4] = {-1,1,0,0};
    int diry[4]={0,0,-1,1};
    bool vis[30][30];
    void DFS(int x,int y,int sum){
    if(xex&&yey){
    if(sum<ans)ans=sum;
    return;
    }
    for
    }
    int main(){
    cin >>n>>m;
    for(int i=1;i<=n;i++){
    for(int j=1;j<=m;j++){
    cin >> mp[i][j];
    if(mp[i][j]'Z')sx=i,sy=j;
    if(mp[i][j]'W')ex=i,ey=j;
    }
    }
    vis[sx][sy]=true;
    DFS(sx,sy,0);
    if(ans==2e9)cout <<"IMPOSSIBLE";
    else cout <<ans;
    return 0;
    }

    10小时前 来自 浙江

    0
  • #include<bits/stdc++.h>
    using namespace std;
    char mp[30][30];
    int n,m,ans=2e9,sx,sy,ex,ey;
    int dirx[4] = {-1,1,0,0};
    int diry[4]={0,0,-1,1};
    bool vis[30][30];
    void DFS(int x,int )
    int main(){
    cin >>n>>m;
    for(int i=1;i<=n;i++){
    for(int j=1;j<=m;j++){
    cin >> mp[i][j];
    if(mp[i][j]'Z')sx=i,sy=j;
    if(mp[i][j]
    'W')ex=i,ey=j;
    }
    }
    vis[sx][sy]=true;
    DFS(sx,sy,0);
    if(ans==2e9)cout <<"IMPOSSIBLE";
    else cout <<ans;
    return 0;
    }

    10小时前 来自 浙江

    0
  • #include <iostream>
    using namespace std;
    int n, m, mp[50][50];
    int dirx[4] = {-1, 1, 0, 0};
    int diry[4] = {0, 0, -1, 1};
    bool vis[50][50], flag;
    void dfs(int x, int y){
    if(x == n && y == m){
    flag = true;
    return;
    }
    for(int i = 0; i < 4; i++){
    int nx = x + dirx[i];
    int ny = y + diry[i];
    if(nx < 1 || nx > n || ny < 1 || ny > m)
    continue;
    if(vis[nx][ny] == 1)
    continue;
    if(mp[nx][ny] == 1)
    continue;
    vis[nx][ny] = true;
    dfs(nx, ny);
    }
    }
    int main() {
    cin >> n >> m;
    for(int i = 1; i <= n; i++){
    for(int j = 1; j <= m; j++){
    cin >> mp[i][j];
    }
    }
    vis[1][1] = true;
    dfs(1,1);
    if(flag) cout << "YES";
    else cout << "NO";
    return 0;
    }

    11小时前 来自 浙江

    0

热门讨论