首页 > 其他分享 >3.抓住那头牛(简单搜索 BFS)

3.抓住那头牛(简单搜索 BFS)

时间:2023-05-01 23:23:08浏览次数:47  
标签:头牛 int BFS 抓住 搜索 移动 农夫

抓住那头牛

↑ 题目链接

题目

农夫知道一头牛的位置,想要抓住它。农夫和牛都位于数轴上,农夫起始位于点 \(N\) ,牛位于点 \(K\)。农夫有两种移动方式:从 \(X\) 移动到 \(X−1\) 或 \(X+1\) ,每次移动花费一分钟从 \(X\) 移动到 \(2∗X\),每次移动花费一分钟假设牛没有意识到农夫的行动,站在原地不动。农夫最少要花多少时间才能抓住牛?

输入格式

共一行,包含两个整数 \(N\) 和 \(K\)。

输出格式

输出一个整数,表示抓到牛所花费的最少时间。

数据范围

\(0≤N,K≤10^5\)

输入样例:

5 17

输出样例:

4

思路

\(BFS\) 搜索即可,每次扩展题目里的三种状态,注意不要越界

代码

#include<bits/stdc++.h>
using namespace std;
const int N=1e5+10;
int d[N];
int n,k;

int bfs()
{
    memset(d,-1,sizeof d);
	queue<int>q;
	d[n]=0;
	q.push(n);

	while(q.size())
	{
		int t=q.front();
		q.pop();
		
		if(t==k)return d[t];
		if(t+1<N&&d[t+1]==-1)
		{
			d[t+1]=d[t]+1;
			q.push(t+1);
		}
		if(t-1>=0&&d[t-1]==-1)
		{
			d[t-1]=d[t]+1;
			q.push(t-1);
		}
		if(t*2<N&&d[t*2]==-1)
		{
			d[t*2]=d[t]+1;
			q.push(t*2);
		}
	}
}
int main()
{
	cin>>n>>k;
	
	cout<<bfs()<<endl;
	
	return 0;	
}

标签:头牛,int,BFS,抓住,搜索,移动,农夫
From: https://www.cnblogs.com/zzmxj/p/17367170.html

相关文章

  • 2.地牢大师(简单搜索 BFS)
    地牢大师↑题目链接题目你现在被困在一个三维地牢中,需要找到最快脱离的出路!地牢由若干个单位立方体组成,其中部分不含岩石障碍可以直接通过,部分包含岩石障碍无法通过。向北,向南,向东,向西,向上或向下移动一个单元距离均需要一分钟。你不能沿对角线移动,迷宫边界都是坚硬的岩石,你......
  • 1.棋盘问题(简单搜索)
    棋盘问题↑题目链接题目在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大小的棋盘,摆放\(k\)个棋子的所有可行的摆放方案数目\(C\)输入格式输入含有多组测试数据。......
  • pyqt5-文本框搜索功能
    1、介绍作用是对一个文本框组件的文本进行搜索,将搜索结果在文本框中进行字体颜色标记,允许re或者普通文本搜索,支持上一个或下一个的跳转,支持标签显示当前索引和总个数。2、ui3、代码(1)自定义search.py,其中包含两个重要的函数"""搜索算法返回结果是list,元素是二元list,表示......
  • 堆与二叉搜索树学习笔记
    部分内容来自OI-WIKI。1.堆堆的定义堆是一棵二叉树,满足每个节点的键值都大于等于它的父亲节点或者小于等于它的父亲节点。每个节点的键值都大于等于它的父亲节点的叫小根堆,每个节点的键值都小于等于它的父亲节点的叫大根堆。优先队列是一种抽象数据类型,它是一种容器,里面有......
  • BFS 简单应用
    前言:BFS即广度优先搜索(或宽度优先搜索),具体定义和实现不在赘述。本文所有代码前的开头头文件,宏定义和命名空间如下(只是一些常用的define和一个快读):#include<bits/stdc++.h>#defineTptemplate<typenameTy>#defineTstemplate<typenameTy,typename...Ar>#definell......
  • 搜索引擎如何判断锚文本质量
    搜索引擎判断锚文本是否适合,主要通过如下几点判断:(1)锚文本植入符合文章需求,该出现的时候出现,不该出现的时候不要出现。(2)对所在文章有促进作用,用户阅读的时候可以通过锚文本扩展阅读。(3)能延展用户需求,挖掘用户额外需求并满足。(4)锚文本设置的数量和位置都做到依据文章的延展需求而定......
  • java 类似于google搜索提示的功能,文本框输入提示
    需要先导入数据库,并且在SearchSuggest中改数据库连接参数黑色头发:http://heisetoufa.iteye.com/......
  • lazada按关键字搜索商品API接口
    ​lazada按关键字搜索商品API接口,在lazada上搜索产品,如果只需要搜索单个产品的话,那么直接在搜索框输入“关键字”即可,如果需要多个产品,那么则需要进行关键字扩展。lazada按关键字搜索商品API接口分为两部分:1.查询列表部分:在列表部分输入“关键字”,即可查询到对应的商品列表;2......
  • 为Flowportal 流程库 增加 按流程关键字 全局搜索功能
    用户在Flowportal后台流程库中维护已建好的流程时,如果已建立的流程比较多且分布在多个文件夹下时,由于系统提供的流程查找功能,仅局限于在某个文件夹中按流程关键字过滤,导致查找流程效率底,速度慢,鉴于此,本人特别根据广大用户的实际需求,改进流程库的查找功能,使用户可以根据流程关键......
  • 解决Kibana(OpenSearch)某些字段无法搜索问题
    背景最近在OpenSearch查看线上日志的时候,发现某个索引下有些字段无法直接在界面上筛选,搜索到也不高亮,非常的不方便,就像下面这样字段左侧两个筛选按钮禁用了无法点击,提示Unindexedfiledscannotbesearched右侧则有感叹号提示Nocachedmappingforthisfield.Refresh......