洛谷 P1443 马的遍历题解】的更多相关文章

题目链接:https://www.luogu.org/problem/P1443 题目描述 有一个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 题解 此题是典型的BFS问题.不过和01迷宫问题有两…
题目:P1443 马的遍历 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 记录一下第一道ac的bfs,原理是利用队列queue记录下一层的所有点,然后一层一层遍历: 其中: 1.pair<,>可以将两个数据类型压缩成一个数据压进队列里,在表示二维坐标时好用. 2.setw()可以设置输出的宽度,left可以设置为左对齐. 代码: #include <iostream> #include <queue> #include <iomanip>…
P1443 马的遍历 题目描述 有一个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 思路:搜索. #include<queue> #include<…
https://www.luogu.org/problemnew/show/P1443 很经典的搜索题了,蒟蒻用广搜打的 不说了,上代码! #include<bits/stdc++.h> using namespace std; struct xy {//定义结构体 int x,y;//x,y两个方向 } node,Top; ]={,-,,-,-,,-,}; ]={,,-,-,,,-,-};//马走的八个方向 ][]; ][]; int n,m; void bfs(int x,int y,in…
终于遇到一个简单纯粹一点的bfs了...... 题目链接:https://www.luogu.org/problemnew/show/P1443 题目是求到达一个点的最短步数 也就是说我只要bfs遍历到这个点的时候顺便给他赋值就好啦 这样肯定是最优解 上代码: #include<bits/stdc++.h> using namespace std; ][],ax[]={,,,,-,-,-,-},ay[]={,,-,-,-,-,,}; queue <int> q; void bfs(…
题目链接(%%%jyy大佬) 题目描述 有一个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 主要是BFS的思想(毕竟是BFS经典题QwQ)我们直接通过注释来理解叭 #…
传送 这是个广搜,思路和普通的迷宫题差不多,但我卡了3遍,为什么呢? 因为输出格式 题目要求左对齐,宽度为5输出,在此说一下如何控制宽度. 下面的m都为要求的宽度 int 类型: printf: %md(现在是右对齐) 左对齐:%-md cout:cout<<left<<setw(m)<<"你要输出的东西balabala"<<endl;(左对齐) cout<<right<<setw(m)<<"…
题目描述 有一个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 思路:裸bfs,输出的时候比较坑是%-5d 代码: #include<cstdio> #in…
题目描述 有一个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 思路:这种题的话用宽搜和广搜都可以,我的思路是每次读取它周围的(能到达的八个方向),在边界内并且未到达过…
https://www.luogu.org/problem/show?pid=1443#sub 题目描述 有一个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 #include &…
这个题是个搜索,而且有是最少的步数,肯定就是广搜啦,不知道为什么的同学先去学习一下广搜吧. 养成好习惯,看见最少步数就去想想广搜(只是我自己觉得) 竟然这个题可以如此顺畅的想到广搜,感觉不难啊,但还有一个奇怪的地方, emm,这个有点冷门啊,没事,讲讲(百度一下)就知道了. 奉上百度答案:printf("%-5d",x); 这句话的意思就是左对齐,宽5格,输出x. 到这里我们几乎就全讲完了(我讲的好水,听不的懂的同学去隔壁dgdger的博客看看吧,传送门) 广搜嘛,我直接附上之前讲广搜…
略有收获的bfs,使用了try_enqueue函数使得加入队列非常方便.性能理论上是一样的因为是inline? 还有就是左对齐是使用%-4d,相对于右对齐的%4d,还有右对齐前导零的%04d,自己试一下呗. #include<bits/stdc++.h> using namespace std; #define ll long long int n,m,sx,sy; ][]; struct QueueNode{ int x,y,t; QueueNode(,,):x(x),y(y),t(t){}…
题目链接:https://www.luogu.org/problemnew/show/P1443 题意: 给一个n*m的棋盘,马在上面走(规则就是象棋中的规则,详细见代码dx,dy数组定义) 问棋盘上每个点马都需要走几步到达. 思路: 简单bfs.注意输出应该用%-5d(不加空格) #include<stdio.h> #include<stdlib.h> #include<map> #include<set> #include<iostream>…
题面 思路: 反向建边,dfs艹咋想出来的啊 倒着遍历,如果你现在遍历到的这个点已经被标记了祖先是谁了 那么就continue掉 因为如果被标记了就说明前面已经遍历过了 而我们的顺序倒着来的 前边的一定比现在的大 所以continue掉 #include <cstdio> #include <cstring> #include <iostream> using namespace std; ; int n, m, head[N], cnt, ans[N]; struct…
  1330:[例8.3]最少步数 s数组:记录(1,1)到达每一点需要的最少步数 s[1][1]自然为 0,其余初始化为 -1 que数组:que[#][1] 表示(1,1)可到达点的 x 坐标 que[#][2] 表示(1,1)可到达点的 y 坐标 que[#][3] 表示(1,1)可到达点的 最少步数 #include<iostream> #include<cstdio> #include<algorithm> #include<cmath> #inc…
洛谷P1783 海滩防御 分析+题解代码 题目描述: WLP同学最近迷上了一款网络联机对战游戏(终于知道为毛JOHNKRAM每天刷洛谷效率那么低了),但是他却为了这个游戏很苦恼,因为他在海边的造船厂和仓库总是被敌方派人偷袭.于是,WLP动用了他那丰满且充实的大脑(或许更偏向前者),想出了一个好主意,他把海滩分成垂直于海岸线的若干列,在其中的几列上放置几个信号塔,试图来监视整个海滩.然而,WLP是一个非常心急的人,他把信号塔建好后才发现还需给信号塔供能,它们才能投入使用(这不是废话么),它们都有一…
洛谷P4047 [JSOI2010]部落划分题解 题目描述 聪聪研究发现,荒岛野人总是过着群居的生活,但是,并不是整个荒岛上的所有野人都属于同一个部落,野人们总是拉帮结派形成属于自己的部落,不同的部落之间则经常发生争斗.只是,这一切都成为谜团了——聪聪根本就不知道部落究竟是如何分布的. 不过好消息是,聪聪得到了一份荒岛的地图.地图上标注了N个野人居住的地点(可以看作是平面上的坐标).我们知道,同一个部落的野人总是生活在附近.我们把两个部落的距离,定义为部落中距离最近的那两个居住点的距离.聪聪还获…
洛谷P1155 双栈排序题解(图论模型转换+二分图染色+栈) 标签:题解 阅读体验:https://zybuluo.com/Junlier/note/1311990 原题地址:洛谷P1155 双栈排序 那么讲题了 很好的一道图论模型转化的题目 考虑什么情况下两个元素一定要放在不同的栈内 经过一番仔细思考+草稿模拟你会得出 当且仅当存在三元组\((i,j,k)\),其中\(i<j<k\)且\(v[k]<v[i]<v[j]\)时,\(i\)和\(j\)一定要放在两个不同的栈内 抽象理解…
P1310 表达式的值 题目描述 给你一个带括号的布尔表达式,其中+表示或操作|,*表示与操作&,先算*再算+.但是待操作的数字(布尔值)不输入. 求能使最终整个式子的值为0的方案数. 题外话 不久之前我在codewars上做过一道类似的题目. 以及把它搬运到了洛谷上. 布尔表达式计数问题 考虑这样一个问题: 有两个布尔变量\(x\)和\(y\). 我们知道使\(x\)等于1的方案有\(x_1\)种,等于0的方案有\(x_0\)种:使\(y\)等于1的方案有\(y_1\)种,等于0的方案有\(y…
[咻咻咻] (https://www.luogu.org/contestnew/show/11616) 令人窒息的洛谷月赛,即将参加NOIp的我竟然只会一道题(也可以说一道也不会),最终145的我只能惨惨的迎接剩下的16天(吧) 下面是题解的代码(填坑),神奇的是这四道题都需要DP.参加SXOI的大佬真是tql,此处手动@ljt12138@__stdcall T1找性质,popcnt为1的加上popcnt为0的就是答案(然而当时没想到只打了暴力) #include<bits/stdc++.h>…
[洛谷P1823]音乐会的等待 Description N个人正在排队进入一个音乐会.人们等得很无聊,于是他们开始转来转去,想在队伍里寻找自己的熟人.队列中任意两个人A和B,如果他们是相邻或他们之间没有人比A或B高,那么他们是可以互相看得见的. 写一个程序计算出有多少对人可以互相看见. 输入格式: 输入的第一行包含一个整数N (1 ≤ N ≤ 500 000), 表示队伍中共有N个人. 接下来的N行中,每行包含一个整数,表示人的高度,以毫微米(等于10的-9次方米)为单位,每个人的调度都小于2^…
+++++++++++++++++++++++++++++++++++++++++++ +本文作者:luyouqi233. + +欢迎访问我的博客:http://www.cnblogs.com/luyouqi233/+ +++++++++++++++++++++++++++++++++++++++++++ https://www.luogu.org/problemnew/show/3527 http://www.lydsy.com/JudgeOnline/problem.php?id=2527…
https://www.luogu.org/problemnew/show/P3763 加里敦大学的生物研究所,发现了决定人喜不喜欢吃藕的基因序列S,有这个序列的碱基序列就会表现出喜欢吃藕的性状,但是研究人员发现对碱基序列S,任意修改其中不超过3个碱基,依然能够表现出吃藕的性状.现在研究人员想知道这个基因在DNA链S0上的位置.所以你需要统计在一个表现出吃藕性状的人的DNA序列S0上,有多少个连续子串可能是该基因,即有多少个S0的连续子串修改小于等于三个字母能够变成S. 是的这篇代码过不了BZO…
dalao们真是太强了,吊打我无名蒟蒻 我连题解都看不懂,在此篇题解中,我尽量用语言描述,不用公式推导(dalao喜欢看公式的话绕道,这篇题解留给像我一样弱的) 进入正题 如果不会扩展欧里几德的话请先去做 洛谷 p1082 同余方程 设跳了k次 所以km - kn + x - y = 0(mod l) 所以k(m - n) + h * l = y - x 这个移项应该没问题吧 设(m - n)为a,k为x,h为y, l为b,(y - x)为m 那么转换为ax + by = m 根据裴蜀定理ax…
没什么特殊的想法 就是看自己很久没有更新关于题解类的文章了而已 (其实这是我好久之前做的, 只是把它从洛谷博客搬到了这里而已) 题目 首先分析题目要二分 他长成这个亚子太二分了 所以就要二分 最好是先排一下序吧 这样我们在输入的时候就能顺便处理出l和r的值, 考虑我们二分的是一个接口的大小, 所以我们的答案肯定是在最大的接口和最小的接口之间啊, 所以这样做是可行的, 而且会让我们的程序跑的更快一些. 然而并没有什么卵用. and 关于二分边界问题, 可以用一个ans来储存答案 一篇很好的关于边界…
题目链接:https://www.luogu.org/problem/P1032 题目描述 已知有两个字串A,BA,B及一组字串变换的规则(至多66个规则): A_1A1​ ->B_1B1​ A_2A2​ -> B_2B2​ 规则的含义为:在 AA中的子串 A_1A1​ 可以变换为B_1B1​,A_2A2​ 可以变换为 B_2B2​ …. 例如:A=abcd,B=xyz, 变换规则为: abc→xu,ud→y,y→yz 则此时,AA可以经过一系列的变换变为BB,其变换的过程为: abcd→xu…
题目链接:https://www.luogu.org/problem/P1310 本题涉及算法:栈.前缀表达式转后缀表达式,动态规划思想. 这道题目我思考了好长时间,第一时间让我做的话我也做不出来. 看洛谷上面的题解给了我很大的启发. 其中最重要的两点启发是: 启发1:中缀加操作数预处理 将原始表达式中添加上'.',这些'.'对应运算数(这么预处理能方便我接下来更方便地将前缀转后缀表达式进行处理): 启发2:动归思想 首先一个状态对应两个值,我暂且将它们设为 \(v0\) 和 \(v1\) ,其…
如果想看原题网址的话请点击这里:地毯填补问题 原题: 题目描述 相传在一个古老的阿拉伯国家里,有一座宫殿.宫殿里有个四四方方的格子迷宫,国王选择驸马的方法非常特殊,也非常简单:公主就站在其中一个方格子上,只要谁能用地毯将除公主站立的地方外的所有地方盖上,美丽漂亮聪慧的公主就是他的人了.公主这一个方格不能用地毯盖住,毯子的形状有所规定,只能有四种选择(如图): (此处图误见后处的图) 并且每一方格只能用一层地毯,迷宫的大小为 ^k * ^k的方形.当然,也不能让公主无限制的在那儿等,对吧?由于你使…
本次免费为大家提供[LGR-070]洛谷 3 月月赛的官方题解,点个赞再走呗! 代码就不上了,大家可以到别的博客上去找找!希望这篇博客能对你有所帮助!…
[NOIP提高&洛谷P1024]一元三次方程求解 Description 有形如:ax3+bx2+cx+d=0 这样的一个一元三次方程.给出该方程中各项的系数(a,b,c,d 均为实数),并约定该方程存在三个不同实根(根的范围在-100至100之间),且根与根之差的绝对值>=1.要求由小到大依次在同一行输出这三个实根(根与根之间留有空格),并精确到小数点后2位. 提示:记方程f(x)=0,若存在2个数x1和x2,且x1<x2,f(x1)*f(x2)<0,则在(x1,x2)之间一定…