![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
BFS
广搜
SSL_wj
这个作者很懒,什么都没留下…
展开
-
P6474&&ybtoj【基础算法】5章4题【荆轲刺秦王】
荆轲刺秦王题目P6474解析显然,这是一道广搜先考虑给每一个士兵能看到的点打标记,发现暴力打标记是O(n2m2)O(n^2m^2)O(n2m2)的,可以通过前缀和优化到O(n2m)O(n^2m)O(n2m)打完标记,直接慢慢敲广搜即可注意事项个人提醒:本人曾经写过95分,后来发现是第18个数据跑了7秒,所以请各位把register拆出来,并吸氧等以卡常,写得优美一些code:#include<queue>#include<cstdio>#include<原创 2021-06-19 11:47:38 · 322 阅读 · 0 评论 -
ybtoj【基础算法】5章3题【立体推箱子】
立体推箱子题目解析考虑设三个状态:dx,y,0d_{x,y,0}dx,y,0表示立在(x,y)(x,y)(x,y)dx,y,1d_{x,y,1}dx,y,1表示倒在(x,y),(x,y−1)(x,y),(x,y-1)(x,y),(x,y−1)dx,y,2d_{x,y,2}dx,y,2表示倒在(x,y),(x−1,y)(x,y),(x-1,y)(x,y),(x−1,y)直接BFS即可code:#include<queue>#include<cstdio>原创 2021-06-19 11:26:50 · 94 阅读 · 0 评论 -
P4667&&ybtoj【基础算法】5章5题【Switch the Lamp On】
Switch the Lamp On题目P4667解析显然,这一道题中,每个元件都可以旋转,因此本题等价于一道01BFS,只需使用deque即可01BFS:在边权只有0/1的情况下,我们可以使用01BFS在O(n+m)O(n+m)O(n+m)的时间内解决当边权为0时,我们把它塞入队头反之塞入队尾,即可维护两段性和单调性ybtoj带多测code(洛谷):#include<deque>#include<cstdio>#include<cstring>原创 2021-06-19 11:14:46 · 119 阅读 · 0 评论 -
SSL_1692&&P2730【魔板】
魔板题目魔板解析看到题目,发现是BFS想起要用哈希做???思路:首先发现只有8个格,考虑用每三位二进制进行状压压完后BFS,用一个224的string数组储存路径结果显而易见:MLE经过修改,发现读入顺序错误,修改考虑省空间,将string扔进队列,用bool类代替AC了!结束了吗?不,还没有code(BFS):#include<iostream>#include<cstring>#include<string>#include&l原创 2021-01-21 20:10:02 · 63 阅读 · 0 评论 -
ybtoj【基础算法】5章2题【山峰和山谷】
山峰和洛谷山谷解析不得不说这题确实玄学,写了个BFS,样例都没过果然是WAA+B Problem的蒟蒻调了亿会儿,终于能用了交上去,打开写题解页面,回头一看,25pts……愣住.jpg好吧,继续调,又调了亿会儿一周过去了……改一下比较好像对了,交一发100pts???好吧,回到原题就是挨个对无标记的点BFS并标记,同时判断是山谷,山峰还是两者兼有(即全部一致)时间复杂度O(n2)code:#include<cstring>#include<cstdi原创 2021-01-02 19:10:30 · 403 阅读 · 0 评论 -
ybtoj【基础算法】5章1题【走迷宫】
a原创 2020-12-30 17:02:48 · 124 阅读 · 0 评论 -
SSL_1759【求连通分量】
求连通分量题目求一个图的连通分量(应为最大连通分量)Inputn顶点数(<=100)边Output连通分量(同上)Sample Input86 31 22 55 44 18 70 0Sample Output4解析对于每个点,判断是否被标记过,如果没有,就从该点向外搜索并标记,并对大小取最大值即可本题写了五种特别像的方法,请欣赏DFS+邻接矩阵code:#include<cstdio>#include<iostream>u原创 2020-12-26 14:41:45 · 80 阅读 · 0 评论 -
SSL_1104&&P1457【城堡】
城堡题目以一个几乎超乎想像的运气,农民约翰在他的生日收到了一张爱尔兰博彩的奖券。这一张奖券成为了唯一中奖的奖券。农民约翰嬴得爱尔兰的乡下地方的一个传说中的城堡。吹牛在他们威斯康辛州不算什么,农民约翰想告诉他的牛所有有关城堡的事。他想知道城堡有多少房间,而且最大的房间有多大。事实上,他想去掉一面墙来制造一个更大的房间。你的任务是帮助农民约翰去了解正确房间数目和大小。城堡的平面图被分为 M(wide)*N(1 <=M,N<=50)个小正方形。每个这样的小正方形有0到4面墙。城堡原创 2020-12-26 11:29:28 · 132 阅读 · 0 评论 -
SSL_1786【麻将游戏】
麻将游戏题目在一种"麻将"游戏中,游戏是在一个有W*H格子的矩形平板上进行的。每个格子可以放置一个麻将牌,也可以不放(如图所示)。玩家的目标是将平板上的所有可通过一条路径相连的两张相同的麻将牌,从平板上移去。最后如果能将所有牌移出平板,则算过关。这个游戏中的一个关键问题是:两张牌之间是否可以被一条路径所连接,该路径满足以下两个特性:它由若干条线段组成,每条线段要么是水平方向,要么是垂直方向。这条路径不能横穿任何一个麻将牌 (但允许路径暂时离开平板)。这是一个例子:在(1,3)的牌和在(4,原创 2020-12-26 08:19:33 · 225 阅读 · 0 评论 -
SSL_2278【Oliver的救援】
Oliver的救援题目在你的帮助下,Oliver终于追到小X了,可有一天,坏人把小X抓走了。这正是Oliver英雄救美的时候。所以,Oliver又找到哆啦A梦,借了一个机器,机器显示出一幅方格地图,它告诉Oliver哪里能走,哪里不能走,。并且Oliver在这个地图的右下角,而小X在左上角。时间紧急,Oliver想知道,最少要走多少个格子,才能找到小X。(只能直走)。Input共N+1行,第一行为N,以下N行N列0-1矩阵,1表示不能通过,0表示可以通过(左上角和右下角为0)。 N<30。O原创 2020-12-25 20:03:54 · 106 阅读 · 0 评论 -
SSL_2325【最小转弯问题】
最小转弯问题题目给出一张地图,这张地图被分为n×m(n,m<=100)个方块,任何一个方块不是平地就是高山。平地可以通过,高山则不能。现在你处在地图的(x1,y1)这块平地,问:你至少需要拐几个弯才能到达目的地(x2,y2)?你只能沿着水平和垂直方向的平地上行进,拐弯次数就等于行进方向的改变(从水平到垂直或从垂直到水平)的次数。例如:如图1,最少的拐弯次数为5。Input第1行:n m第2至n+1行:整个地图地形描述(0:空地;1:高山)第n+2行:x1 y1 x2 y2(分别为起点、原创 2020-12-25 19:08:17 · 124 阅读 · 0 评论 -
SSL_2324【细胞问题】&&P1451【求细胞数量】
细胞问题&&求细胞数量题目一矩形阵列由数字0到9组成,数字1到9代表细胞,细胞的定义为沿细胞数字上下左右还是细胞数字则为同一细胞,求给定矩形阵列的细胞个数。如:阵列0234500067103456050020456006710000000089有4个细胞。Input输入共m+1行第一行有两个数据n和m,分别表示总行数和总列数以下的m行,每行有n个0-9之间的数Output细胞个数Sample Input4 100234500067103456050020456原创 2020-12-25 18:17:40 · 197 阅读 · 0 评论 -
SSL_1194&&P5767【最优乘车】
最优乘车题目H城是一个旅游胜地,每年都有成千上万的人前来观光。为方便游客,巴士公司在各个旅游景点及宾馆,饭店等地都设置了巴士站并开通了一些单程巴上线路。每条单程巴士线路从某个巴士站出发,依次途经若干个巴士站,最终到达终点巴士站。一名旅客最近到H城旅游,他很想去S公园游玩,但如果从他所在的饭店没有一路已士可以直接到达S公园,则他可能要先乘某一路巴士坐几站,再下来换乘同一站台的另一路巴士, 这样换乘几次后到达S公园。现在用整数1,2,…N 给H城的所有的巴士站编号,约定这名旅客所在饭店的巴士站编号为1…原创 2020-12-24 17:09:31 · 92 阅读 · 1 评论 -
SSL_1457【翻币问题】
翻币问题题目有N个硬币(6<=N<=20000)全部正面朝上排成一排,每次将其中5个硬币翻过来放在原位置,直到最后全部硬币翻成反面朝上为止。试编程找出步数最少的翻法,输出最少步数及翻法。Input从键盘输入一个正整数N(6<=N<=20000),表示硬币的数量。Output第1行:一个整数,表示最少步数第2行至最后一行:先是一个整数,表示步骤序号(从0开始编号),后接一个":",再接当前硬币的状态(用一个整数表示正面朝上的硬币的个数)Sample Input6S原创 2020-12-24 16:58:23 · 66 阅读 · 1 评论 -
SSL_1456【骑士旅行】
骑士旅行题目在一个n m 格子的棋盘上,有一只国际象棋的骑士在棋盘的左下角 (1;1)(如图1),骑士只能根据象棋的规则进行移动,要么横向跳动一格纵向跳动两格,要么纵向跳动一格横向跳动两格。 例如, n=4,m=3 时,若骑士在格子(2;1) (如图2), 则骑士只能移入下面格子:(1;3),(3;3) 或 (4;2);对于给定正整数n,m,I,j值 (m,n<=50,I<=n,j<=m) ,你要测算出从初始位置(1;1) 到格子(i;j)最少需要多少次移动。如果不可能到达目标位置,则原创 2020-12-24 16:48:55 · 87 阅读 · 1 评论 -
SSL_1455【电子老鼠闯迷宫】
电子老鼠闯迷宫题目如下图12×12方格图,找出一条自入口(2,9)到出口(11,8)的最短路径。Sample Input122 9 11 81 1 1 1 1 1 1 1 1 1 1 11 0 0 0 0 0 0 1 0 1 1 11 0 1 0 1 1 0 0 0 0 0 11 0 1 0 1 1 0 1 1 1 0 11 0 1 0 0 0 0 0 1 0 0 11 0 1 0 1 1 1 1 1 1 1 11 0 0 0 1 0 1 0 0 0 0 11 0 1 1 1 0原创 2020-12-24 16:41:33 · 151 阅读 · 1 评论