uva 439 - Knight Moves

来源:互联网 发布:网络招嫖2016最大案件 编辑:程序博客网 时间:2024/05/20 10:54
#include <iostream>#include <cstdio>#include <cstring>#include <cmath>#include <algorithm>using namespace std;int vis[10][10], ans[100];;int step[10][3]= {{1,2},{1,-2},{-1,2},{-1,-2},{2,1},{-2,1},{2,-1},{-2,-1}};int bfs(int x1, int y1, int x2, int y2){    int front = 0, rear = 1, list[100][3];    list[front][0] = x1;    list[front][1] = y1;    vis[x1][y1] = 1;    ans[front] = 0;    while(front < rear)    {        for(int i = 0; i < 8; i++)        {            int x = step[i][0] + list[front][0], y = step[i][1] + list[front][1];            if(x>0 && x<=8 && y>0 && y<=8 && !vis[x][y])            {                if(x == x2 && y == y2) return ans[front]+1;                list[rear][0] = x;                list[rear][1] = y;                ans[rear++] = ans[front] + 1;                vis[x][y] = 1;            }        }        front++;    }    return 0;}int main(){    char s1[3], s2[3];    while(cin >> s1 >> s2)    {        memset(vis, 0, sizeof(vis));        memset(ans, 0, sizeof(ans));        int count = bfs(s1[1]-'0', s1[0]-'a'+1, s2[1]-'0', s2[0]-'a'+1);        printf("To get from %s to %s takes %d knight moves.\n", s1, s2, count );    }    return 0;}

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 编辑部回复我文章没有被录用怎么办 父亲死后教师资格被别人顶替怎么办 刚发的论文影响因子变化了怎么办 奥鹏毕业论文过了提交时间了怎么办 手机电池被拿出来后时间不准怎么办 高中的孩子与同学相处不好怎么办 孩子在幼儿园不敢和老师说话怎么办 注册过万方医学网忘了用户名怎么办 狗咬了没破皮没出血有点疼怎么办 狗咬了没出血肿起来了怎么办 广州已经过了幼儿园报名时间怎么办 大专学费没交学校开始查了怎么办 如果申请留学的本科成绩不够怎么办 硕士读了三年无法毕业怎么办啊 孩子在美国读研读不下去怎么办? 在地割草中过失死亡法律^怎么办 高中毕业申请国外大学没录取怎么办 英国研究生老师没给写推荐信怎么办 申请悉尼大学博士奖学金被拒怎么办 硕士延迟毕业但被博士录取怎么办 考完初级职称还是不会做账怎么办 美国留学生在中国办日本签证怎么办 留学雅思过了gpa低怎么办澳洲 护士电子化注册用户名忘记了怎么办 护士电子化注册证书编码错误怎么办 澳洲预科上半学期成绩不达标怎么办 美国大学绩点不够怎么办学习证明 研一想换导师导师不答应怎么办 日本留学在留下来不想去了怎么办 加拿大工签3年到期了怎么办 鞋子穿久了会有臭味怎么办 考研忘了自己填写的通讯地址怎么办 基础教育教师培训网注册错了怎么办 11个月宝宝便秘大便有血怎么办 两岁宝宝两天没拉粑粑了怎么办 两岁宝宝两天没拉大便怎么办 两岁宝宝便秘两天没拉怎么办 昨天带孩子上早教课一直哭怎么办 网页账号注册无法获取验证码怎么办 我总是为一些事情而烦恼怎么办 手机键盘打出的字是繁体字怎么办