2 条题解

  • 1
    @ 2022-8-26 10:40:20

    这是一道广搜的入门题。

    广搜过程(请确保你学过队列):

    1、起点入队。

    2、取出队头。

    3、生成下一层结点。

    4、检查目标结点是否在这些结点中,若不在,继续生成并检查结点。(即按层遍历)

    广搜优点:第一次搜索到某个点时,就是最快到达该点的方式。

    详细做法见注释。

    #include <iostream>
    #include <queue>
    #include <cstdlib>
    using namespace std;
    struct Point{
        int x,y;
    };
    int n,m,x,y,s,t,dis[6][6];
    bool vis[6][6];
    queue<Point> q;
    const int dx[]={-1,-2,-2,-1,1,2,2,1};//8个方向
    const int dy[]={-2,-1,1,2,-2,-1,1,2};
    void bfs(){
        q.push((Point){x,y});//起点入队
        vis[x][y]=1;
        dis[x][y]=0;
        while (q.size()){//在队列非空时一直搜索
            Point now=q.front();//处理队头
            q.pop();
            for (int i=0;i<8;i++){
                int nx=now.x+dx[i];//下一个点的坐标
                int ny=now.y+dy[i];
                if (nx>=1&&nx<=n&&ny>=1&&ny<=m&&!vis[nx][ny]){
                    q.push((Point){nx,ny});//将队头能到达的点入队
                    dis[nx][ny]=dis[now.x][now.y]+1;//记录步数
                    vis[nx][ny]=1;//标记为已走过
                    if (nx==s&&ny==t){
                        cout<<dis[nx][ny];
                        exit(0);//在其他函数内结束整个程序
                    }
                }
            }
        }
    }
    int main(){
        cin>>n>>m>>x>>y>>s>>t;
        bfs();
        return 0;
    }
    
    • -2
      @ 2022-4-24 17:50:59

      写题解请注意

      鼓励大家写题解,但注意题解格式。

      题解一定要有思路解析或代码注释,能否让别人理解你的思路

      也是你的能力的检验,不要只放无意义的代码给大家复制,那就失去了做题的初心。

      给代码两端加上这个会舒服一些

      ```cpp

      你的代码

      ```

      </span>

      这个点在键盘的左上角tab上面那个键,注意切换输入法

      #include<iostream>
      using namespace std;
      int main()
      {
          int n;
          cin>>n;//这是一个注释
          return 0;
      } 
      

      请注意严禁抄袭题解,写题解不要只放代码,需加上你的思路或代码注释。

      抄袭题解一经发现直接取消成绩。

      题解被删除的可能

      1. 代码不符合格式规范
      2. 没有思路讲解或者没有注释,
      3. 无意义的题解

      大家携手共同维护一个良好的编程环境,如果一经发现,多次作乱。可能会被管理员拉黑,请注意,一旦拉黑即失去登陆资格。

      • 1

      信息

      ID
      435
      时间
      1000ms
      内存
      128MiB
      难度
      1
      标签
      递交数
      93
      已通过
      65
      上传者