• pipioj 1021 机器人走迷宫(简单模拟)


    http://www.pipioj.online/problem.php?id=1021

     1 #define IO std::ios::sync_with_stdio(0);
     2 #define bug(x) cout<<#x<<" is "<<x<<endl
     3 #include <bits/stdc++.h>
     4 #define iter ::iterator
     5 using namespace  std;
     6 typedef long long ll;
     7 typedef pair<int,ll>P;
     8 #define pb push_back
     9 #define mk make_pair
    10 #define se second
    11 #define fi first
    12 #define rs o*2+1
    13 #define ls o*2
    14 const ll mod=1e9+7;
    15 const int N=1e2+5;
    16 int T,n,m;
    17 int sx,sy,ex,ey;
    18 int a[N];
    19 char s[N][N];
    20 int vis[N][N];
    21 int dx[8]={-1,0,1,0};
    22 int dy[8]={0,1,0,-1};
    23 map<char,int>mp;
    24 void gao(){
    25     mp['U']=0;
    26     mp['R']=1;
    27     mp['D']=2;
    28     mp['L']=3;
    29 }
    30 int check(int x,int y){
    31     if(x<1||x>n||y<1||y>m||s[x][y]=='*'||vis[x][y])return 0;
    32     return 1;
    33 }
    34 int bfs(){
    35     int ans=1;
    36     int r=mp[s[sx][sy]];
    37     int x=sx,y=sy,px,py;
    38     int f=0;
    39     vis[sx][sy]=1;
    40     while(1){
    41         px=x,py=y;
    42         x=x+dx[r];
    43         y=y+dy[r];
    44         f++;
    45         if(check(x,y)){
    46             vis[x][y]=1;
    47             f=0;
    48             ans++;
    49         }
    50         else{
    51             if(f>1)return ans;
    52             x=px;
    53             y=py;
    54             r=(r+1)%4;
    55         }
    56     }
    57 }
    58 int main(){
    59     gao();
    60     while(~scanf("%d%d",&n,&m)){
    61         for(int i=1;i<=n;i++){
    62             scanf("%s",s[i]+1);
    63             for(int j=1;j<=m;j++){
    64                 vis[i][j]=0;
    65                 if(s[i][j]!='*'&&s[i][j]!='.'){
    66                     sx=i;
    67                     sy=j;
    68                 }
    69             }
    70         }
    71         printf("%d
    ",bfs());
    72     }
    73 }
    74 /*
    75 
    76 2 3
    77 ..*
    78 .U.
    79 
    80 2 3
    81 ..*
    82 U..
    83 
    84 2 3
    85 .*.
    86 U..
    87 
    88 4 4
    89 ....
    90 .**.
    91 .**.
    92 ...U
    93 
    94 */
  • 相关阅读:
    Shell 函数
    Shell 流程控制
    Shell test 命令
    Shell echo命令
    python 类、模块、包的区别
    postgresql vacuum table
    ssh连接断开后 shell进程退出
    ubuntu 搭建 svn服务器,使用http方式访问
    如何查看apache加载了哪些模块
    maven 的使用
  • 原文地址:https://www.cnblogs.com/ccsu-kid/p/14515284.html
Copyright © 2020-2023  润新知