广搜
有关广搜的题;
不是只能用单纯的队列来解的;
是广搜的变形题。
JayGram
这个作者很懒,什么都没留下…
展开
-
CF:1633D. Make Them Equal(广搜+背包)
题目链接题意:有一个大小为n的整数数组a。最初,数组所有元素都为1.可以执行如下操作:选定一个i和任意的x(x>0)然后把ai=ai+[ai/x](向下取整)执行所有操作后,若ai==bi,那么你可以得到ci个金币。通过执行不超过k次的操作使得获得最大的金币数量。1->bi的最小操作数,用广搜得到。所以用广搜预处理1->1000的所有最小操作数,然后来一遍01背包即可。细节处理:由于k太大了,但是可以发现任意一个1->bi的操作数最多为20左右,所以最多操作数原创 2022-05-02 18:29:54 · 218 阅读 · 0 评论 -
TZOJ:7536 A Maze Game(双端队列--步数带限制的广搜)
题目链接:TZOJ:7536A Maze Game题面:样例输入1:4 53 21 2......***....***....样例输出1:10CF原题。双端队列板子题把。(没学双端的最好先学了)就是最短路的思想:把向左移和向右移都看成是权值为1的边,向上或向下移动权值为0.那么可以发现这个图的权值只有0或者1。可以用双端队列来做。如果向左或向右移,把点放到队列后边,向上或向下移动,把点放到队列前边。#include <bits/st原创 2022-03-15 12:23:29 · 388 阅读 · 0 评论 -
(牛客每日一题)[NOIP2017]棋盘--优先队列版广搜
我想从这道题开始展开对方向广搜各类题的总结;普通的方向广搜就用单纯的队列然后根据题目的方向去搜就行;但总有一些变形题在求最小值的时候,会限制或者是增加一些条件,使得一个点不能只单纯的遍历一次,或者说遍历玩这个点后还要进行折返之类的问题;比如说这道题,这道题明显的要用广搜来写,网上很多题解也都是用广搜,至于颜色变换的地方也只是对是否入队的判断罢了,不是什么大问题。关键的地方就在于一个点从不同方向的地方遍历过来得到的所用的金钱是不同的。但广搜的弊端就在于这个点如果被遍历后就不能再被遍历了,如果继续遍原创 2021-11-05 10:58:57 · 232 阅读 · 0 评论 -
洛谷P1902 二分+bfs的板子题
板子题,没啥好说的;二分伤害,bfs跑这个伤害是否能跑到第n行,跑的到的话减小伤害r=mid-1,跑不到的话扩大伤害l=mid+1。#include <bits/stdc++.h>using namespace std;const int maxn=1005;typedef pair<int,int> P;int n,m;int a[maxn][maxn];bool flag[maxn][maxn];int dis[4][2]={1,0,0,1,-1,0,0,原创 2021-11-09 14:18:43 · 125 阅读 · 0 评论 -
TZOJ:1592Mountain Walking(二分+bfs+暴力枚举)
写过二分+bfs的板子题的话,应该能看出来这道也是如此的;没写过的话;洛谷P1902 刺杀大使。。这是一道二分+bfs的板子题这道题和板子题的不同之处就在于他有两个变量;因为二分的对象肯定是海拔的高度差,然后在图中跑找是否存在一条路径中的最高与最低高度差能≤二分的高度差;那要做到这样的话,相当于能在图中找到这样的路径并找到路径上的最高与最低的高度差;但很明显如果能有啥算法能做到的话,这道题根本就不需要什么二分+bfs了;所以只能先二分高度差,然后暴力枚举每一个范围正好的等于高度差原创 2021-11-09 14:15:51 · 110 阅读 · 0 评论