zoukankan      html  css  js  c++  java
  • 【Luogu1363】幻想迷宫

    problem

    solution

    codes

    //语文题,这很好  last submit
    #include<iostream>
    #include<cstring>
    using namespace std;
    const int maxn = 3100;
    int n, m, a[maxn][maxn], vis[maxn][maxn], x, y, flag;
    const int dx[] = {0,0,-1,1};
    const int dy[] = {1,-1,0,0};
    void dfs(int x, int y){
        if(flag||x<0||x>=2*n||y<0||y>=2*m||a[x][y]||vis[x][y])return ;
        if(x>=n||y>=m)
            if(vis[x%n][y%m]||vis[x%n+n][y%m]||vis[x%n][y%m+m]||vis[x%n+n][y%m+m]){flag=1;return ;}
        vis[x][y] = 1;
        for(int i = 0; i < 4; i++)
            dfs((x+dx[i]+2*n)%(2*n),(y+dy[i]+2*m)%(2*m));
    }
    int main(){
        ios::sync_with_stdio(false);
        while(cin>>n>>m){
            flag = 0;
            memset(a,0,sizeof(a));
            memset(vis,0,sizeof(vis));//bugs
            //date in
            for(int i = 0; i < n; i++){
                for(int j = 0; j < m; j++){
                    char ch;  cin>>ch;
                    if(ch == '#')a[i][j]=1;
                    if(ch == 'S')x=i,y=j;
                }
            }
            //copy for 3
            for(int i = 0; i < n; i++)
                for(int j = 0; j < m; j++)
                    a[i][j+m] = a[i][j],
                    a[i+n][j] = a[i][j],
                    a[i+n][j+m] = a[i][j];
            //search
            dfs(x,y);
            if(flag)cout<<"Yes
    ";
            else cout<<"No
    ";
        }
        return 0;
    }
  • 相关阅读:
    Ehcache(2.9.x)
    Ehcache(2.9.x)
    Ehcache(2.9.x)
    Ehcache(2.9.x)
    Ehcache(2.9.x)
    Ehcache(2.9.x)
    Ehcache(2.9.x)
    网站静态化处理—反向代理(10)
    网站静态化处理—满足静态化的前后端分离(9)
    网站静态化处理—前后端分离—下(8)
  • 原文地址:https://www.cnblogs.com/gwj1314/p/9444717.html
Copyright © 2011-2022 走看看