uva 439 Knight Moves 骑士移动 —— bfs

骑士的移动(Knight Moves, Uva439)- BFS模板题 题目 参考网址:https://vjudge.net/problem/UVA-439 大意: 按照国际象棋????的移动规则,求????最小需要多少步从起点跳到终点。(老BFS模板题了~) 知识点 BFS求最短路径 思路 BFS模板题,输入转换为坐标r (row),c (column)行和列,使用队列的方式进行BFS,使用vis记录是否访问,使用dis记录距离(当然两个可以合并为一个来写)。 每次pop出队首u检查是否是目的位置,是的话返回当前节点位置所记录下的dis。 否则,向“四面八方”扩散出 阅读详情

代码如下:

#include<stdio.h>//bfs 骑士的移动
#include<string.h>
#include<stdlib.h>

struct
{
    int x,y,z;
}q[1000];
int map[10][10],head = 0, tail = 0;
int d[8][2]={ {-1,-2}, {-1,2}, {1,-2}, {1,2}, {-2,-1}, {-2,1}, {2,-1}, {2,1} };

int bfs(int x,int y,int xo,int yo)
{
    if(x==xo && y==yo)
        return 0;

    q[tail].x = x; q[tail].y = y; tail++; map[x][y] = 1;
    while(tail!=head)
    {
        for(int i = 0;i<8;i++)
        {
            int xx = q[head].x + d[i][0];
            int yy = q[head].y + d[i][1];
            if(!map[xx][yy] && xx>0 && xx<9 && yy>0 && yy<9)
            {
                if(xx==xo && yy==yo)
                    return q[head].z+1;
                map[xx][yy] = 1;
                q[tail].x = xx; q[tail].y = yy; q[tail].z = q[head].z+1; tail++;
            }
        }
        head++;
    }
    return -1;
}

int main()
{
    int x,y,xo,yo,step;
    memset(map,0,sizeof(map));
    memset(q,0,sizeof(q));
    scanf("%d %d %d %d",&x,&y,&xo,&yo);
    step = bfs(x,y,xo,yo);
    step>=0? printf("%d",step):printf("no way");
    return 0;
}


北大acm 1915 Knight Moves C++语言源代码 北大 acm JudgeOnline poj1915 Knight Moves c++源代码 立即下载

相关推荐

Knight Moves

Your task is to write a program to calculate the minimum number of moves移动次数 needed for a knight to reach one point from another, so that you have the chance to be faster than Somurolov. For people not familiar with chess, the possible knight moves are shown in Figure 1.

骑士的移动 Knight Moves

输入8*8的国际象棋棋盘上的2个格子(列:a~h,行:1~8),求马至少多少步从起点(键盘输入的第一个位置)跳到终点(键盘输入的第二个位置)。

Xiao_juice的博客 1012

SAP开发实战:用FI_DOCUMENT_CHANGE BAPI批量修改FB03凭证抬头和行项目文本(附完整ABAP代码)

本文详细介绍了如何使用SAP的FI_DOCUMENT_CHANGE BAPI批量修改FB03凭证抬头和行项目文本,提供完整的ABAP代码实现方案。通过该BAPI,开发者可以高效完成财务凭证的批量修改,确保数据一致性和审计合规性,显著提升SAP财务模块的运维效率。

weixin_29224589的博客 381

【BFS】Knight Moves(C++)

Description 贝茜和她的表妹在玩一个简化版的国际象棋。棋盘如图所示: 贝茜和表妹各有一颗棋子。棋子每次移一步,且棋子只能往如图所示的八个方向移动。比赛的规则很简单,两个人需要从起点将棋子移到终点,谁能花最少的步数从起点走到终点,就是赢家。为了确保能赢表妹,贝茜希望每次都能算出最少的步数,你能帮助她么 Input 输入起点和终点,用一个空格隔开。(确保起点一定能走到终点) Output ...

liuzich的博客 1228

用KalmanNet搞定非线性状态估计:当卡尔曼滤波遇上神经网络

本文深入探讨了KalmanNet如何将神经网络与卡尔曼滤波结合,以解决非线性状态估计中的模型失配和噪声不确定性问题。通过保留经典滤波框架并用RNN学习卡尔曼增益,该方法在无人机导航、机器人定位等场景中实现了模型驱动与数据驱动的优势互补,提升了估计的鲁棒性和灵活性。

mango的博客 312

2023-10-20 - MacBook - 优化外接2k显示器体验:告别字小与字虚的终极指南

本文针对MacBook外接2K显示器时普遍遇到的字体过小和边缘发虚问题,提供了终极解决方案。通过深入解析macOS的HiDPI与Retina显示原理,并详细指导使用SwitchResX等工具开启隐藏的HiDPI模式,实现完美的2倍整数缩放,从而在保证字体大小合适的同时获得清晰锐利的显示效果,彻底告别字小与字虚的困扰。

solidity8miner的博客 477

【1372】Knight Moves

1372 标准的bfs做法,注意这个棋是走“日”字 #include<bits/stdc++.h> using namespace std; //这题需要注意棋子走法 int t[8][2]={-2,1,-1,2,1,2,2,1,2,-1,1,-2,-1,-2,-2,-1}; int mep[15][15],X,Y; char s1[10],s2[10]; struct node{ int x,y,step; }; int check(int a,int b){//是否需要访问 if(

weixin_49646622的博客 166

【RK3399】Android平台增加一款声卡设备(ES7210+ES8156),进行录音/播放测试。

文章目录前言一、开发环境二、概述三、硬件介绍1、ES72102、ES81563、数字麦克风阵列4、音频示意图四、下载SDK五、编译、烧写1、u-boot2、kernel3、Android SDK4、烧写分区5、烧写固件六、声卡驱动1、添加codec代码2、修改Kconfig3、修改Makefile4、修改rockchip_defconfig5、修改DTS七、声卡调试1、查看声卡注册信息2、使用tinycap/tinyplay录音和放音3、使用示波器观测八、修改HAL层1、修改默认capture/playba

rentong123的博客 2万+

【BFS】UVA439 Knight Moves 骑士的移动

A friend of you is doing research on the Traveling Knight Problem (TKP) where you are to find the shortest closed tour of knight moves that visits each square of a given set of n squares on a chessboa...

elegant coder 393

VS2019手动添加bits/stdc++.h全指南(附解决‘无法打开源文件‘错误)

本文详细介绍了在Visual Studio 2019中手动配置C++万能头文件bits/stdc++.h的完整方法,解决常见的'无法打开源文件'错误。通过分析GCC与MSVC编译器生态差异,提供了纯手动创建和MinGW移植两种可靠方案,并给出详细的步骤、常见错误排查及最佳实践建议,帮助开发者高效配置竞赛开发环境。

weixin_29011395的博客 549

机载电脑与飞控串口通信(实测读取飞控IMU数据)《一、香橙派5max启动串口UART通信与飞控板通信,一次必通!》《二、allspark1与PIX6C通信踩坑及出坑》《三、orinnx载板与飞控通信》

机载电脑与飞控串口通信(实测读取飞控IMU数据)《一、香橙派5max启动串口UART通信与雷迅v5nano飞控板通信,一次必通!》《二、阿木机载电脑allspark1与PIX6C通信踩坑及出坑》,还有如何打开飞控串口以及如何提高飞控IMU频率。

2402_82745259的博客 3471

uva 439 Knight Moves(骑士的移动)BFS

BFS import java.util.Arrays; import java.util.LinkedList; import java.util.Queue; import java.util.Scanner; public class Main { static int[] dr = {-2,-2,-1,1,2,2,1,-1}; static int[] dc = {-1,1,2

时间杀手Time的博客 556

智能水下机器人设计: 基于MATLAB的水下机器人动力学建模和控制系统设计,包括水下环境感知、路径规划和任务执行等

智能水下机器人是指能够在水下自主完成各种任务的机器人,例如探测、勘察、救援等。它具有广阔的应用前景,可用于海洋环境监测、水下考古、海上作业等领域。基于MATLAB的水下机器人设计可以为科研人员和工程师提供强大的建模和仿真工具,帮助他们设计更智能、更高效的水下机器人。智能水下机器人是未来海洋科技发展的重要方向,它将为海洋科学研究、水下考古和海上作业等领域带来新的机遇。MATLAB是一种功能强大的数学和科学计算软件,它可以为智能水下机器人设计提供强大的工具和支持。

走向CTO的路上... 963

习题6-4 UVA439 骑士的移动 Knight Moves

难度:3 先处理输入,然后是bfs即可,我写的是二元到整数的映射,应该也可以写成数组的。 #include <bits/stdc++.h> #define fi first #define se second #define pb push_back #define all(x) (x).begin(), (x).end() using namespace std; typedef long long ll; typedef vector<int> vi; typedef pa

weixin_46709784的博客 296

2023年高教社杯 | 2023年高教社杯全国大学生数学建模思路(A题思路、C题思路)

2023年高教社杯 | 2023年高教社杯全国大学生数学建模思路(A题思路、C题思路)

前程算法屋的博客 624

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

UVa439 习题 6-4 骑士的移动(Knight Moves)

原题链接: UVa-439 题目大意:  骑士在一个8*8的棋盘上移动,1-8代表行号,a-h代表列号,给出骑士的初始位置和目的位置,求骑士最少的移动步数.刘汝佳的字数上这题给了骑士移动的规律的图形。原题上没有给。 解题思路:  看到本题要求求最短步数,首先想到应该用广度优先搜索(BFS),使用队列进行辅助。放了放置重复访问,设置一个二维数组来存储访问状态。  对于确定找到下

Miracle42的博客 1978

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

UVA - 439 - Knight Moves (BFS)

UVA - 439 Knight Moves Time Limit: 3000MS   Memory Limit: Unknown   64bit IO Format: %lld & %llu Submit Status Description A friend of you is doing research on t

Never say never 998

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

UVA 439 Knight Moves(BFS)

题目大意: 给你起点和终点,按照象棋里面的象走日的走法,要走几步。 解题思路: 这代题目调试了几个小时,原来是错在节点坐标没初始化,所以做题还是要小心啊。

Menglei Min 1394

uva 439 Knight Moves(BFS遍历)

uva 439 Knight Moves A friend of you is doing research on the Traveling Knight Problem (TKP) where you are to find the shortest closed tour of knight moves that visits each square of a given se

总有那么一群人喜欢盯着我的博客看,估计这是他们见过最长的博客名,我必须得告诉他们博客名最长可以写多长 705

UVA 439-Knight Moves(bfs)

Knight Moves Time Limit:3000MS     Memory Limit:0KB     64bit IO Format:%lld & %llu Submit Status Description A friend of you is doing research on the Traveling Knight Problem (TKP) 

Rocky0429 1600

UVa OJ 439 - Knight Moves 骑士移动

ACMer菜鸟第一次做图论的题目

hnu_zhou的专栏 607

习题6-4 骑士的移动 UVa 439

UVA - 439 Knight Moves Time Limit: 3000MS   Memory Limit: Unknown   64bit IO Format: %lld & %llu Submit Status Description A friend of you is doing research on t

01的世界 579

uva 439 knight moves

BFS  Knight Moves  A friend of you is doing research on the Traveling Knight Problem (TKP) where you are to find the shortest closed tour of knight moves that visits each

chengouxuan的专栏 1133

习题6-4 骑士的移动(Knight Moves, UVa 439)

原题链接:https://vjudge.net/problem/UVA-439 分类:图 备注:简单BFS 代码如下: #include<cstdio> #include<queue> using namespace std; const int dir[8][2] = { {-2,1},{-1,2},{1,2},{2,1},{2,-1},{1,-2},{-1,-2},{-...

TK_wang_的博客 415

Knight Moves UVA - 439

A friend of you is doing research on the Traveling Knight Problem (TKP) where you are to find the shortest closed tour of knight moves that visits each square of a given set of n squares on a chessboard exactly once. He thinks that the most difficult part

就很好(*^_^*)的博客 242
上一篇: hdu1198 Farm Irrigation —— dfs or 并查集
下一篇: uva11214 守卫棋盘 —— 迭代加深搜
DOLFAMINGO
博客等级 码龄10年 8粉丝 216原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值