首页 > 其他分享 >骑士出行-题目+答案

骑士出行-题目+答案

时间:2024-07-06 14:26:35浏览次数:14  
标签:出行 head 题目 int sy nx ny que 骑士

题目描述:

国际象棋中的骑士(走日字型),从棋盘上一个点走到另一个点最少需要几步。(起点记作0步)

输入格式:

第一行输入一个整数n,表示棋盘的大小为n∗n,棋盘两个维度的坐标都是从0到n-1

接下来两行,每行两个整数分别表示出发点的坐标与终点的坐标。

输出格式:

输出一个整数,表示最小步数

样例输入:

100 0 0 30 50

样例输出:

28

约定:

1<=3001<=n<=300

接下来看看代码:

#include<bits/stdc++.h>
using namespace std;
int dx[8]={-1,-2,-2,-1,1,2,2,1};
int dy[8]={-2,-1,1,2,2,1,-1,-2};
int n,nx,ny,sx,sy;
int vis[1005][1005];
struct node{
	int x,y,step;
};
void bfs(){
	queue<node>que;
	que.push({nx,ny,0});
	vis[nx][ny]=1;
	while(!que.empty()){
		node head=que.front();que.pop();
		if(head.x==sx and head.y==sy){
			cout<<head.step;
			return;
		}
		for(int i=0;i<8;i++){
			int ax=head.x+dx[i];
			int ay=head.y+dy[i];
			if(ax>=0 and ax<n and ay>=0 and ay<n and vis[ax][ay]==-1){
				vis[ax][ay]=1;
				que.push({ax,ay,head.step+1});
			}
		}
	}
}

int main(){
	memset(vis,-1,sizeof vis);
	cin>>n>>nx>>ny>>sx>>sy;	
	bfs();
}

标签:出行,head,题目,int,sy,nx,ny,que,骑士
From: https://blog.csdn.net/zhenglaiyun/article/details/140228937

相关文章

  • PTA题目集7-8的总结
    PTA题目集7-8的总结1.前言:2.设计与分析:3.踩坑心得:4.改进意见:5.总结1.前言:  PTA题目集7新增了互斥开关,窗帘,多并联电路和多串联电路。由于之前的输入信息中设备的引脚没有作用,所以我的正则表达式只用来提取设备的名字。而互斥开关有三个引脚,不同引脚的电压也不一样,所以这次......
  • 周航锐 hehezhou、叶李溪、黄洛天、许庭强题目选讲
    https://files.cnblogs.com/files/blogs/697234/slide.zip?t=1720184804&download=true110.【PR5】双向奔赴111.AT_agc043_dMergeTriplets112.【JOIOpen2020】黑白点113.apio2022游戏114.UOJ749【UNR#6】稳健型选手115.P5327[ZJOI2019]语言116.UOJ814鸽子收费站......
  • 【C语言题目】34.猜凶手
    文章目录作业标题作业内容2.解题思路3.具体代码作业标题猜凶手作业内容日本某地发生了一件谋杀案,警察通过排查确定杀人凶手必为4个嫌疑犯的一个。以下为4个嫌疑犯的供词:A说:不是我。B说:是C。C说:是D。D说:C在胡说已知3个人说了真话,1个人说的是假话。现在请......
  • 个性化出行新选择:P2P租车市场趋势一览
    一、行业简述P2P租车,即个人对个人的租车模式,是利用互联网技术将闲置的私家车与有用车需求的人进行有效匹配,实现车辆资源的共享与利用。这一新兴租车方式的出现,不仅打破了传统租车行业的局限,还为用户提供了更加灵活、便捷且成本更低的租车体验。P2P租车行业的特点主要体现在......
  • C++语言相关的常见面试题目(三)
    1.List底层实现原理省流:list底层实现了一个双向循环链表。每个元素(或节点)包含三个部分:数据域(_M_Storage)、前驱指针(_M_prev)、后继指针(_M_next)。数据域:存储实际数据。前驱指针:指向链表中当前节点之前的一个节点。后继指针:指向链表中当前节点之后的一个节点此外,存......
  • 小国王 骑士 状态压缩DP
    //小国王.cpp:此文件包含"main"函数。程序执行将在此处开始并结束。//#include<iostream>#include<vector>usingnamespacestd;/*https://loj.ac/p/10170http://ybt.ssoier.cn:8088/problem_show.php?pid=1592在nxn的棋盘上放k个国王,国王可攻击相邻的......
  • XMOJ 题目笔记
    5月Div.2场切:ABCDEF想出正解了,但是没写对拍100->72,痛失AK。5月Div.1场切:A(状压DP)BTODO:CTODO:DXMOJ8516简要题意:给定\(n\)。你需要找一个数\(w\),以\(w\)为参数画格子:在前\(\lfloor\fracnw\rfloor\)行每行画\(w\)个格子;紧接下来的一行画\(n\bmodw......
  • 题目-计算是周几
    #include<bits/stdc++.h>usingnamespacestd;intmain(){inta,b,c=1;cin>>a>>b;for(inti=1;i<=b;i++){c*=a;c%=7;}if(c==0){cout<<"Sunday";}......
  • 信息素养大赛题目 小旗手 AC代码分享
    /*AC*程序思路:*1.定义票数数组x,标记数组a,人数n,max1(最大值比较变量),maxi(最大值下标变量)*2.输入人数,票数数组的第一票*3.循环通过数学表达式((x[i-1]*37+33031)%n)+1递推计算票数并存入票数数组x*4.将a数组的x[i]位置+1(桶标记,将这个学号的获票数+1)*5.遍历a......
  • C#题目问答
    目录1.整数转换,整数和字符串,字符串和整数之间的转换怎么实现?2.日期转换,获取当前日期,字符串转日期,日期转字符串怎么实现?3.举例一维、二维、三维数组。4.需求:有个88笔费用记录,总额3亿,金额在300万~800万之间,随机数如何实现?并记录总耗时。5.简述常见的集合类型的存储结构和它......