LG1443 马的遍历

来源:互联网 发布:自动刷弹幕软件 编辑:程序博客网 时间:2024/06/05 05:46

题目描述

有一个n*m的棋盘(1<n,m<=400),在某个点上有一个马,要求你计算出马到达棋盘上任意一个点最少要走几步

输入格式:

一行四个数据,棋盘的大小和马的坐标

输出格式

一个n*m的矩阵,代表马到达某个点最少要走几步(左对齐,宽5格,不能到达则输出-1)

输入输出样例

输入样例#1:
3 3 1 1
输出样例#1:
0 3 2
3 -1 1
2 1 4

Thinking:

 就是bfs就可以了,我是保存了每次的坐标和此时是马走的第几步,另外注意处理最开始的位置就好了。刷题愉快,圣诞愉快,虽然已经是26号凌晨了。
#include<cstdio>#include<iostream>#include<queue>#include<iomanip>using namespace std;int n, m, sx, sy;const int MAXN = 405;int map[MAXN][MAXN];struct node{    int x, y, num;    node(){}    node(int xx, int yy, int n){        x = xx;            y = yy;           num = n;  // 马走的第n步    }}; queue<node> q;int d[8][2] = {{-1, 2}, {-2, 1}, {-2, -1}, {-1, -2},               {1, -2}, {2, -1}, {1, 2}, {2, 1}};bool bfs(){    while(!q.empty()){        node nn = q.front();        q.pop();        int x = nn.x;        int y = nn.y;        int num = nn.num;        for(int i = 0; i < 8; i++){            int xx = x + d[i][0];            int yy = y + d[i][1];            if( 1 <= xx && xx <= n && 1 <= yy && yy <= m && map[xx][yy] == 0){                map[xx][yy] = num+1;                q.push(node(xx, yy, num+1));            }        }    }}int main(){    scanf("%d%d%d%d", &n, &m, &sx, &sy);     q.push(node(sx, sy, 0));    map[sx][sy] = 1;  // 在bfs时判断如果某个时刻马能够走的8个方向都是非零数值,那么此时这个位置没用,所以这里先把初始位置改为任意非零值,然后输出的时候再改回来就好了。    bfs();    for(int i = 1; i <= n; i++){        for(int j = 1; j <= m; j++){            if(map[i][j] == 0)                map[i][j] = -1;        }    }    map[sx][sy] = 0;    for(int i = 1; i <= n; i++){        for(int j = 1; j <= m; j++){            cout<<left<<setw(5)<<map[i][j];        }        printf("\n");    }    return 0;}
阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 冷胶 脉舒冷敷凝胶 金福家筋骨冷敷凝胶 医用冷敷凝胶是干嘛用的 冷干胶 润目冷敷凝胶 皮康冷敷凝胶 冷敷凝胶价格 舒眠冷敷凝胶 水冷电缆胶管 分离胶 英和婴宝医用冷敷凝胶 一抹清新鼻部冷敷凝胶 冷色 冷色画 冷色的画 冷色和暖色 冷色暖色 冷色画大全 儿童冷色画 冷色装修 冷色抽象画 冷色画简单又漂亮 白色是冷色还是暖色 冷色和暖色的画 暖色和冷色哪个对眼睛好 蓝色是冷色还是暖色 末世之异能觉醒一抹冷色 末世之异能觉醒 一抹冷色 冷盘菜谱 冷菜 冷菜菜谱大全 冷菜拼盘花样图片 酒店冷菜菜谱大全 冷菜菜谱 冷菜拼盘图片 凉拌菜做法大全 凉拌菜怎么做 凉拌菜的做法大全图解 凉拌菜做法大全带图解 凉拌菜的做法