• POJ P3009 Curling 2.0 题解


    深搜,向四个方向,在不越界的情况下一直闷头走,直到撞墙。到达终点就输出,没到就回溯。

     1 #include<iostream>
     2 #include<cstring>
     3 #include<cstdio>
     4 #include<algorithm>
     5 using namespace std;
     6 int n,m;
     7 int map[21][21];
     8 int xxx,yyy;
     9 int ans=99999999;
    10 int tx[4]={1,-1,0,0};
    11 int ty[4]={0,0,1,-1};
    12 void dfs(int x,int y,int step)
    13 {
    14     if(step>=ans||step>=10)
    15     {
    16         return;
    17     }
    18     for(int i=0;i<4;i++)
    19     {
    20         int sx=x+tx[i];
    21         int sy=y+ty[i];
    22         if(map[sx][sy]==1)continue;
    23         while(sx>=0&&sy>=0&&sx<n&&sy<m&&map[sx][sy]!=1&&map[sx][sy]!=3)
    24         {
    25             sx+=tx[i];
    26             sy+=ty[i];
    27         }
    28         if(sx<0||sy<0||sx==n||sy==m)continue;
    29         else 
    30         {
    31             if(map[sx][sy]==3)
    32             {
    33                 ans=step+1;
    34                 return;
    35             }
    36             else 
    37             {
    38                 map[sx][sy]=0;
    39                 dfs(sx-tx[i],sy-ty[i],step+1);
    40                 map[sx][sy]=1;
    41             }
    42         }
    43     }
    44 }
    45 int main()
    46 {
    47     while(cin>>m>>n&&n!=0&&m!=0)
    48     {
    49         ans=99999999;
    50         for(int i=0;i<n;i++)
    51         {
    52             for(int j=0;j<m;j++)
    53             {
    54                 cin>>map[i][j];
    55                 if(map[i][j]==2)
    56                 {
    57                     xxx=i;
    58                     yyy=j;
    59                 }
    60             }
    61         }
    62         dfs(xxx,yyy,0);
    63         if(ans==99999999) cout<<-1<<endl;
    64         else cout<<ans<<endl;
    65     }
    66 }
    请各位大佬斧正(反正我不认识斧正是什么意思)
  • 相关阅读:
    Redis主从复制、哨兵Sentinel、集群简单介绍
    Redis集群
    Redis哨兵模式
    Redis主从架构
    Redis持久化方式
    缓存2.2——Redis并发竞争
    DOM内容梳理2
    纯js制作九宫格
    正则表达式内容梳理
    JavaScript之DOM详解
  • 原文地址:https://www.cnblogs.com/handsome-zyc/p/11237412.html
Copyright © 2020-2023  润新知