BFS
ssl_yty
这个作者很懒,什么都没留下…
展开
-
【洛谷 P7151】 【BFS】 Replication G
【洛谷 P7151】 【BFS】 Replication G题目解题思路先求出每一个点到墙壁的距离 因为它限制了一个机器人以及它的副本能走的格子求一个机器人能到达的格子 且不能让它的副本碰到墙壁在上一步已经知道当前这个距离初始机器人有多远,由此可以得出有多少副本如果直接将其放入队列就不能保证它的单调性,用堆维护,先让距离越短的先做代码#include<iostream>#include<cstring> #include<cstdio>原创 2021-08-19 21:33:38 · 113 阅读 · 0 评论 -
【洛谷 P7297】 【BFS】Telephone G
【洛谷 P7297】 【BFS】Telephone G题目解题思路直接建图的话,边数太大了考虑分层图每一层之间相邻的有路,代价为1第0层为输入的奶牛种类,(a[i],i)连向(0,i)自己的颜色那一层的第i个 ,代价为0如果两种颜色间可以互通,(0,i)连向(j,i),代价为0然后跑一遍BFS即可代码#include<iostream>#include<cstring>#include<cstdio>#include<deque原创 2021-08-17 22:04:04 · 124 阅读 · 0 评论 -
【gmoj】 【BFS】 树上摩托
【gmoj】 【BFS】 树上摩托题目解题思路将一棵树分成几颗节点数相等的树那么我们可以先将以每个节点为根的树的节点数求出来 就是有多少个子节点样例中的数树长这样发现,如果想让一颗树分成x棵节点数一样的树,那么它的节点个数一定是x的倍数枚举总节点数n的因数x作为新树的节点个数,那么会有n/x棵数,也就是需要n/k个点为根节点这些节点的子节点个数一定是x的倍数所以就是判断存不存在这样的n/x个点代码#include<iostream>#include<cstr原创 2021-08-12 15:10:50 · 84 阅读 · 0 评论 -
【ybtoj 高效进阶 1.5】【广搜】 荆轲刺秦王
【ybtoj 高效进阶 1.5】【广搜】 荆轲刺秦王解题思路预处理士兵的监测范围可以用查分做例,士兵监测范围是3,如图在每一行能被看到的起点+1,看不到的第一个-1最后用前缀和求出所有范围广搜可以向八个方向走已经四个方向瞬移下一步一共12种走法用四维标记当前格有没有走过坐标以及瞬移和隐身的次数如果当时能被士兵看到,使用隐身当当前步数比已知答案大,可以跳过注意瞬移和隐身的限制代码#include<iostream>#include<cstring原创 2021-01-21 10:40:25 · 131 阅读 · 0 评论 -
【ybtoj 高效进阶 1.5】 【广搜】 立体堆箱子
【ybtoj 高效进阶 1.5】 【广搜】 立体堆箱子题目解题思路将长方体3种摆放情况记录下来立着就只记录本身,竖着记录下面的,横着记录右边的手推这三种情况向上下左右推是哪种状态经典广搜跑一遍代码#include<iostream>#include<cstring>#include<cstdio>using namespace std;struct lzf{ int x,y,t,b;}q[1000100];char c;int n,原创 2021-01-09 12:03:20 · 92 阅读 · 1 评论 -
【ybtoj 高效进阶 1.5】 【广搜】 山峰和山谷
【ybtoj 高效进阶 1.5】 【广搜】 山峰和山谷题目解题思路广搜找连通块判断这个连通块周围一圈是否全部小于或大于ta全部小于则是山峰全部大于则是山谷最后输出山峰和山谷的个数代码#include<iostream>#include<cstring> #include<cstdio>using namespace std;struct lzf{ int x,y;}q[1000050];int n,tz,ansmi,ansma;i原创 2021-01-08 19:51:00 · 135 阅读 · 0 评论 -
【ybtoj 高效进阶 1.5】【广搜】 走迷宫
【ybtoj 高效进阶 1.5】【广搜】 走迷宫题目解题思路广搜模板没啥好说的代码#include<iostream>#include<cstdio>using namespace std;struct lzf{ int x,y;}q[1000020];char a[1005][1005];int n,t,h,qx,qy,zx,zy;int p[1005][1005],f[1005][1005];int fx[5]={0,1,0,-1,0},fy[原创 2021-01-03 10:50:19 · 134 阅读 · 0 评论 -
连通图 题解
连通图题目判断一个图是否为一个连通图输入n 顶点个数 ( n <= 100 )点与点之间的边输出1 表示连通0 表示不边通样例input51 22 35 40 0output0解题思路建一个邻接表,从任意一个点走起,将所有点走一遍,如果能就输出 1 ,不能就输出 0 。代码#include<iostream>#include<...原创 2019-12-19 16:01:51 · 341 阅读 · 0 评论 -
麻将游戏 题解
麻将游戏题目在一种"麻将"游戏中,游戏是在一个有W*H格子的矩形平板上进行的。每个格子可以放置一个麻将牌,也可以不放(如图所示)。玩家的目标是将平板上的所有可通过一条路径相连的两张相同的麻将牌,从平板上移去。最后如果能将所有牌移出平板,则算过关。这个游戏中的一个关键问题是:两张牌之间是否可以被一条路径所连接,该路径满足以下两个特性:1. 它由若干条线段组成,每条线段要么是水平方向,要么是垂...原创 2019-12-14 08:54:54 · 1460 阅读 · 0 评论 -
翻币问题 题解
翻币问题问题描述有N个硬币(6<=N<=20000)全部正面朝上排成一排,每次将其中5个硬币翻过来放在原位置,直到最后全部硬币翻成反面朝上为止。试编程找出步数最少的翻法,输出最少步数及翻法。input从键盘输入一个正整数N(6<=N<=20000),表示硬币的数量。output第1行:一个整数,表示最少步数第2行至最后一行:先是一个整数,表示步骤序号(从0开始...原创 2019-12-06 21:07:32 · 1408 阅读 · 0 评论 -
洛谷 P5767 最优乘车 题解
最优乘车问题描述H城是一个旅游胜地,每年都有成千上万的人前来观光。为方便游客,巴士公司在各个旅游景点及宾馆,饭店等地都设置了巴士站并开通了一些单程巴上线路。每条单程巴士线路从某个巴士站出发,依次途经若干个巴士站,最终到达终点巴士站。 一名旅客最近到H城旅游,他很想去S公园游玩,但如果从他所在的饭店没有一路已士可以直接到达S公园,则他可能要先乘某一路巴士坐几站,再下来换乘同一站台的另一路巴士...原创 2019-12-07 08:14:45 · 1223 阅读 · 0 评论 -
洛谷 P1451 求细胞数量 (BFS) 题解
求细胞数量问题描述一矩形阵列由数字0到9组成,数字1到9代表细胞,细胞的定义为沿细胞数字上下左右若还是细胞数字则为同一细胞,求给定矩形阵列的细胞个数。(1<=m,n<=100)input输入一个整数 m , n ( m 行,n 列)的矩阵output输出细胞的个数样例输入4 100234500067103456050020456006710000000089...原创 2019-12-07 09:22:21 · 1572 阅读 · 2 评论 -
最小转弯问题 题解
最小转弯问题问题描述给出一张地图,这张地图被分为 n×m(n,m<=100)个方块,任何一个方块不是平地就是高山。平地可以通过,高山则不能。现在你处在地图的(x1,y1)这块平地,问:你至少需要拐几个弯才能到达目的地(x2,y2)?你只能沿着水平和垂直方向的平地上行进,拐弯次数就等于行进方向的改变(从水平到垂直或从垂直到水平)的次数。例如:如图 1,最少的拐弯次数为5。input第...原创 2019-12-07 10:22:22 · 1429 阅读 · 1 评论 -
Oliver的救援 题解
Oliver的救援问题描述在你的帮助下,Oliver终于追到小X了,可有一天,坏人把小X抓走了。这正是Oliver英雄救美的时候。所以,Oliver又找到哆啦A梦,借了一个机器,机器显示出一幅方格地图,它告诉Oliver哪里能走,哪里不能走,。时间紧急,Oliver想知道,最少要走多少个格子,才能找到小X。( 4 个方向)。input共 N+2 行,第一行为 N,第 N+2 行为 Oli...原创 2019-12-07 11:00:28 · 374 阅读 · 0 评论