3 条题解

  • -4
    @ 2022-4-24 17:49:33

    写题解请注意

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

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

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

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

    ```cpp

    你的代码

    ```

    </span>

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

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

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

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

    题解被删除的可能

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

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

    • -5
      @ 2022-4-19 22:39:04

      严禁抄题解,发现后取消成绩

      • -5
        @ 2021-12-20 20:49:42
        
        马可以跳的位置在棋盘上有8个位置,设置好对应的方向数组,然后就是标准的广搜模板代码。
        #include<iostream>
        #include<queue>
        using namespace std;
        int n,m,dis[155][155],sx,sy,ex,ey;
        char a[155][155];
        bool vis[155][155];
        int dx[8]={2,1,-1,-2,-2,-1,1,2};
        int dy[8]={-1,-2,-2,-1,1,2,2,1};//方向数组
        struct point
        {
        	int x,y;
        };
        queue<point> q;
        void bfs(int x,int y)
        {
        	vis[x][y]=true;
        	q.push((point){x,y});
        	dis[x][y]=0;
        	while(q.size()>0)
        	{
        		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(a[nx][ny]=='H')
        			{
        				dis[nx][ny]=dis[now.x][now.y]+1;
        				return ;
        			}
        			if(nx>=1&&nx<=m&&ny>=1&&ny<=n&&!vis[nx][ny]&&a[nx][ny]!='*')
        			{
        				vis[nx][ny]=true;
        				dis[nx][ny]=dis[now.x][now.y]+1;
        				q.push((point){nx,ny});
        			}
        		}
        	}
        }
        int main()
        {
        	ios::sync_with_stdio(false);
            cin.tie(0);
        	cin>>n>>m;
        	for(int i=1;i<=m;i++)
        	{
        		for(int j=1;j<=n;j++)
        		{
        			cin>>a[i][j];
        			if(a[i][j]=='K')
        			{
        				sx=i;//记录起点
        				sy=j;
        			}
        			if(a[i][j]=='H')
        			{
        				ex=i,ey=j;//记录终点
        			}
        		}
        	}
        	bfs(sx,sy);
        	cout<<dis[ex][ey];
        	return 0;
        }
        • 1

        信息

        ID
        438
        时间
        1000ms
        内存
        128MiB
        难度
        3
        标签
        递交数
        34
        已通过
        22
        上传者